Dynamically add year variable to meta title / description in Magento 2
Does the new finding on "reversing a quantum jump mid-flight" rule out any interpretations of QM?
If there's something that implicates the president why is there then a national security issue? (John Dowd)
Electricity free spaceship
Is there a DSLR/mirorless camera with minimal options like a classic, simple SLR?
tabular: caption and align problem
Was planting UN flag on Moon ever discussed?
Can you make an identity from this product?
Does a bank have to tell me if a check made out to me was cashed there?
Why does this query, missing a FROM clause, not error out?
How can one's career as a reviewer be ended?
What STL algorithm can determine if exactly one item in a container satisfies a predicate?
Do people with slow metabolism tend to gain weight (fat) if they stop exercising?
Java Servlet & JSP simple login
Why is long-term living in Almost-Earth causing severe health problems?
60s or 70s novel about Empire of Man making 1st contact with 1st discovered alien race
Does the Nuka-Cola bottler actually generate nuka cola?
Ability To Change Root User Password (Vulnerability?)
What aircraft was used as Air Force One for the flight between Southampton and Shannon?
Why are MBA programs closing in the United States?
Increase speed altering column on large table to NON NULL
Proving that a Russian cryptographic standard is too structured
2019 gold coins to share
Analogy between an unknown in an argument, and a contradiction in the principle of explosion
Live action TV show where High school Kids go into the virtual world and have to clear levels
Dynamically add year variable to meta title / description in Magento 2
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I am trying to automatically add the current year to the meta title and description in for example category-pages. I want to achieve something like this:
Meta title: "The best category items for year" >> "The best category items for 2019"
What would be the easiest way to do this?
magento2 variables meta-title meta-description
add a comment |
I am trying to automatically add the current year to the meta title and description in for example category-pages. I want to achieve something like this:
Meta title: "The best category items for year" >> "The best category items for 2019"
What would be the easiest way to do this?
magento2 variables meta-title meta-description
for a particular category or all categories?
– Amit Bera♦
Jun 3 at 12:59
For all categories in which the year tag is used. I just want to replace this tag with the current year.
– klaaskox
Jun 3 at 13:11
add a comment |
I am trying to automatically add the current year to the meta title and description in for example category-pages. I want to achieve something like this:
Meta title: "The best category items for year" >> "The best category items for 2019"
What would be the easiest way to do this?
magento2 variables meta-title meta-description
I am trying to automatically add the current year to the meta title and description in for example category-pages. I want to achieve something like this:
Meta title: "The best category items for year" >> "The best category items for 2019"
What would be the easiest way to do this?
magento2 variables meta-title meta-description
magento2 variables meta-title meta-description
asked Jun 3 at 12:57
klaaskoxklaaskox
104
104
for a particular category or all categories?
– Amit Bera♦
Jun 3 at 12:59
For all categories in which the year tag is used. I just want to replace this tag with the current year.
– klaaskox
Jun 3 at 13:11
add a comment |
for a particular category or all categories?
– Amit Bera♦
Jun 3 at 12:59
For all categories in which the year tag is used. I just want to replace this tag with the current year.
– klaaskox
Jun 3 at 13:11
for a particular category or all categories?
– Amit Bera♦
Jun 3 at 12:59
for a particular category or all categories?
– Amit Bera♦
Jun 3 at 12:59
For all categories in which the year tag is used. I just want to replace this tag with the current year.
– klaaskox
Jun 3 at 13:11
For all categories in which the year tag is used. I just want to replace this tag with the current year.
– klaaskox
Jun 3 at 13:11
add a comment |
1 Answer
1
active
oldest
votes
In this case, you can use event/observer.
Fire an observer on the event catalog_category_load_after
at frontend area set meta description on the fly.
Create
events.xml
at
app/code/StackExchange/Magento/etc/frontend/
and as
`events.xml location under on frontend and this event only fire
for frontend area.
events.xml code
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="catalog_category_load_after">
<observer instance="StackExchangeMagentoObserverFrontendCatalogCategoryLoadAfter"
name="stackexchange_magento_observer_frontend_catalog_categoryloadafter_catalog_product_load_after"
/>
</event>
</config>
Create Observer class
CategoryLoadAfter
at
app/code/StackExchange/Magento/Observer/Frontend/Catalog/
.
CategoryLoadAfter.php code
<?php
namespace StackExchangeMagentoObserverFrontendCatalog;
class CategoryLoadAfter implements MagentoFrameworkEventObserverInterface
/**
* @var PsrLogLoggerInterface
*/
private $logger;
public function __construct(
PsrLogLoggerInterface $logger
)
$this->logger = $logger;
/**
* Execute observer
*
* @param MagentoFrameworkEventObserver $observer
* @return void
*/
public function execute(
MagentoFrameworkEventObserver $observer
)
$this->logger->debug(__METHOD__);
$category = $observer->getEvent()->getCategory();
if ($category instanceof MagentoCatalogModelCategory)
$oldMetaTitle = $category->getMetaTitle();
$oldMetaDescription = $category->getMetaDescription();
$oldMetaKeyword = $category->getMetaKeywords();
$category->setMetaTitle(str_replace("year",date('Y'),$oldMetaTitle));
$category->setMetaDescription(str_replace("year",date('Y'),$oldMetaDescription));
$category->setMetaKeywords(str_replace("year",date('Y'),$oldMetaKeyword));
Also, your module must have:
app/code/Vendor/Modulename/etc/module.xml
app/code/Vendor/Modulename/composer.json
app/code/Vendor/Modulename/registration.php
After adding the event you should flush the cache.
Thanks a lot, works great!
– klaaskox
Jun 3 at 14:54
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f277087%2fdynamically-add-year-variable-to-meta-title-description-in-magento-2%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
In this case, you can use event/observer.
Fire an observer on the event catalog_category_load_after
at frontend area set meta description on the fly.
Create
events.xml
at
app/code/StackExchange/Magento/etc/frontend/
and as
`events.xml location under on frontend and this event only fire
for frontend area.
events.xml code
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="catalog_category_load_after">
<observer instance="StackExchangeMagentoObserverFrontendCatalogCategoryLoadAfter"
name="stackexchange_magento_observer_frontend_catalog_categoryloadafter_catalog_product_load_after"
/>
</event>
</config>
Create Observer class
CategoryLoadAfter
at
app/code/StackExchange/Magento/Observer/Frontend/Catalog/
.
CategoryLoadAfter.php code
<?php
namespace StackExchangeMagentoObserverFrontendCatalog;
class CategoryLoadAfter implements MagentoFrameworkEventObserverInterface
/**
* @var PsrLogLoggerInterface
*/
private $logger;
public function __construct(
PsrLogLoggerInterface $logger
)
$this->logger = $logger;
/**
* Execute observer
*
* @param MagentoFrameworkEventObserver $observer
* @return void
*/
public function execute(
MagentoFrameworkEventObserver $observer
)
$this->logger->debug(__METHOD__);
$category = $observer->getEvent()->getCategory();
if ($category instanceof MagentoCatalogModelCategory)
$oldMetaTitle = $category->getMetaTitle();
$oldMetaDescription = $category->getMetaDescription();
$oldMetaKeyword = $category->getMetaKeywords();
$category->setMetaTitle(str_replace("year",date('Y'),$oldMetaTitle));
$category->setMetaDescription(str_replace("year",date('Y'),$oldMetaDescription));
$category->setMetaKeywords(str_replace("year",date('Y'),$oldMetaKeyword));
Also, your module must have:
app/code/Vendor/Modulename/etc/module.xml
app/code/Vendor/Modulename/composer.json
app/code/Vendor/Modulename/registration.php
After adding the event you should flush the cache.
Thanks a lot, works great!
– klaaskox
Jun 3 at 14:54
add a comment |
In this case, you can use event/observer.
Fire an observer on the event catalog_category_load_after
at frontend area set meta description on the fly.
Create
events.xml
at
app/code/StackExchange/Magento/etc/frontend/
and as
`events.xml location under on frontend and this event only fire
for frontend area.
events.xml code
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="catalog_category_load_after">
<observer instance="StackExchangeMagentoObserverFrontendCatalogCategoryLoadAfter"
name="stackexchange_magento_observer_frontend_catalog_categoryloadafter_catalog_product_load_after"
/>
</event>
</config>
Create Observer class
CategoryLoadAfter
at
app/code/StackExchange/Magento/Observer/Frontend/Catalog/
.
CategoryLoadAfter.php code
<?php
namespace StackExchangeMagentoObserverFrontendCatalog;
class CategoryLoadAfter implements MagentoFrameworkEventObserverInterface
/**
* @var PsrLogLoggerInterface
*/
private $logger;
public function __construct(
PsrLogLoggerInterface $logger
)
$this->logger = $logger;
/**
* Execute observer
*
* @param MagentoFrameworkEventObserver $observer
* @return void
*/
public function execute(
MagentoFrameworkEventObserver $observer
)
$this->logger->debug(__METHOD__);
$category = $observer->getEvent()->getCategory();
if ($category instanceof MagentoCatalogModelCategory)
$oldMetaTitle = $category->getMetaTitle();
$oldMetaDescription = $category->getMetaDescription();
$oldMetaKeyword = $category->getMetaKeywords();
$category->setMetaTitle(str_replace("year",date('Y'),$oldMetaTitle));
$category->setMetaDescription(str_replace("year",date('Y'),$oldMetaDescription));
$category->setMetaKeywords(str_replace("year",date('Y'),$oldMetaKeyword));
Also, your module must have:
app/code/Vendor/Modulename/etc/module.xml
app/code/Vendor/Modulename/composer.json
app/code/Vendor/Modulename/registration.php
After adding the event you should flush the cache.
Thanks a lot, works great!
– klaaskox
Jun 3 at 14:54
add a comment |
In this case, you can use event/observer.
Fire an observer on the event catalog_category_load_after
at frontend area set meta description on the fly.
Create
events.xml
at
app/code/StackExchange/Magento/etc/frontend/
and as
`events.xml location under on frontend and this event only fire
for frontend area.
events.xml code
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="catalog_category_load_after">
<observer instance="StackExchangeMagentoObserverFrontendCatalogCategoryLoadAfter"
name="stackexchange_magento_observer_frontend_catalog_categoryloadafter_catalog_product_load_after"
/>
</event>
</config>
Create Observer class
CategoryLoadAfter
at
app/code/StackExchange/Magento/Observer/Frontend/Catalog/
.
CategoryLoadAfter.php code
<?php
namespace StackExchangeMagentoObserverFrontendCatalog;
class CategoryLoadAfter implements MagentoFrameworkEventObserverInterface
/**
* @var PsrLogLoggerInterface
*/
private $logger;
public function __construct(
PsrLogLoggerInterface $logger
)
$this->logger = $logger;
/**
* Execute observer
*
* @param MagentoFrameworkEventObserver $observer
* @return void
*/
public function execute(
MagentoFrameworkEventObserver $observer
)
$this->logger->debug(__METHOD__);
$category = $observer->getEvent()->getCategory();
if ($category instanceof MagentoCatalogModelCategory)
$oldMetaTitle = $category->getMetaTitle();
$oldMetaDescription = $category->getMetaDescription();
$oldMetaKeyword = $category->getMetaKeywords();
$category->setMetaTitle(str_replace("year",date('Y'),$oldMetaTitle));
$category->setMetaDescription(str_replace("year",date('Y'),$oldMetaDescription));
$category->setMetaKeywords(str_replace("year",date('Y'),$oldMetaKeyword));
Also, your module must have:
app/code/Vendor/Modulename/etc/module.xml
app/code/Vendor/Modulename/composer.json
app/code/Vendor/Modulename/registration.php
After adding the event you should flush the cache.
In this case, you can use event/observer.
Fire an observer on the event catalog_category_load_after
at frontend area set meta description on the fly.
Create
events.xml
at
app/code/StackExchange/Magento/etc/frontend/
and as
`events.xml location under on frontend and this event only fire
for frontend area.
events.xml code
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="catalog_category_load_after">
<observer instance="StackExchangeMagentoObserverFrontendCatalogCategoryLoadAfter"
name="stackexchange_magento_observer_frontend_catalog_categoryloadafter_catalog_product_load_after"
/>
</event>
</config>
Create Observer class
CategoryLoadAfter
at
app/code/StackExchange/Magento/Observer/Frontend/Catalog/
.
CategoryLoadAfter.php code
<?php
namespace StackExchangeMagentoObserverFrontendCatalog;
class CategoryLoadAfter implements MagentoFrameworkEventObserverInterface
/**
* @var PsrLogLoggerInterface
*/
private $logger;
public function __construct(
PsrLogLoggerInterface $logger
)
$this->logger = $logger;
/**
* Execute observer
*
* @param MagentoFrameworkEventObserver $observer
* @return void
*/
public function execute(
MagentoFrameworkEventObserver $observer
)
$this->logger->debug(__METHOD__);
$category = $observer->getEvent()->getCategory();
if ($category instanceof MagentoCatalogModelCategory)
$oldMetaTitle = $category->getMetaTitle();
$oldMetaDescription = $category->getMetaDescription();
$oldMetaKeyword = $category->getMetaKeywords();
$category->setMetaTitle(str_replace("year",date('Y'),$oldMetaTitle));
$category->setMetaDescription(str_replace("year",date('Y'),$oldMetaDescription));
$category->setMetaKeywords(str_replace("year",date('Y'),$oldMetaKeyword));
Also, your module must have:
app/code/Vendor/Modulename/etc/module.xml
app/code/Vendor/Modulename/composer.json
app/code/Vendor/Modulename/registration.php
After adding the event you should flush the cache.
edited Jun 3 at 14:57
klaaskox
104
104
answered Jun 3 at 13:05
Amit Bera♦Amit Bera
61k1682181
61k1682181
Thanks a lot, works great!
– klaaskox
Jun 3 at 14:54
add a comment |
Thanks a lot, works great!
– klaaskox
Jun 3 at 14:54
Thanks a lot, works great!
– klaaskox
Jun 3 at 14:54
Thanks a lot, works great!
– klaaskox
Jun 3 at 14:54
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f277087%2fdynamically-add-year-variable-to-meta-title-description-in-magento-2%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
for a particular category or all categories?
– Amit Bera♦
Jun 3 at 12:59
For all categories in which the year tag is used. I just want to replace this tag with the current year.
– klaaskox
Jun 3 at 13:11