<title>
商品ページのタグに追加したいカスタム属性が 2 つあります。それらは「ブランド」と「サブタイトル」です。
私のページのタイトルは次のようになります。
$brand." ".$productname." ".$subtitle;
どうすればこれを達成できますか?
助けていただければ幸いです。
あなたの質問から、製品のメタ タイトルの変更について言及していると思います。
次の 3 つのオプションがあります。
あなたの決定は、実際にはオプション 2 と 3 の間で決まります (どちらも、達成するためにカスタム モジュールを作成する必要があります)。
私は、Magento のコア機能を拡張するときは常にできるだけ目立たないようにしています。そのため、ここではオプション 3 を選択します。完全な例については、以下のコードを参照してください。
app/etc/modules/Yourcompany_Yourmodule.xml
<?xml version="1.0"?>
<config>
<modules>
<Yourcompany_Yourmodule>
<active>true</active>
<codePool>local</codePool>
</Yourcompany_Yourmodule>
</modules>
</config>
アプリ/コード/ローカル/あなたの会社/あなたのモジュール/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Yourcompany_Yourmodule>
<version>1.0.0</version>
</Yourcompany_Yourmodule>
</modules>
<global>
<models>
<yourmodule>
<class>Yourcompany_Yourmodule_Model</class>
</yourmodule>
</models>
</global>
<frontend>
<events>
<catalog_controller_product_view>
<observers>
<yourmodule>
<class>Yourcompany_Yourmodule_Model_Observer</class>
<method>catalog_controller_product_view</method>
</yourmodule>
</observers>
</catalog_controller_product_view>
</events>
</frontend>
</config>
アプリ/コード/ローカル/あなたの会社/あなたのモジュール/モデル/Observer.php
<?php
class Yourcompany_Yourmodule_Model_Observer
{
/**
* Change product meta title on product view
*
* @pram Varien_Event_Observer $observer
* @return Yourcompany_Yourmodule_Model_Observer
*/
public function catalog_controller_product_view(Varien_Event_Observer $observer)
{
if ($product = $observer->getEvent()->getProduct()) {
$title = $product->getData('brand') . ' ' . $product->getData('name') . ' ' . $product->getData('sub_title');
$product->setMetaTitle($title);
}
return $this;
}
}
これはドリューハンターの答えへの追加です
magento にはタイトルにカテゴリ名が含まれているため、適切な解決策は次のようになります。
class Yourcompany_Yourmodule_Model_Observer
{
/**
* Change product meta title on product view
*
* @pram Varien_Event_Observer $observer
* @return Yourcompany_Yourmodule_Model_Observer
*/
public function catalog_controller_product_view(Varien_Event_Observer $observer)
{
if ($product = $observer->getEvent()->getProduct()) {
if ($category) {
$title = $brand . ' ' . $product->getData('name') . ' - ' . $product->getData('category')->getData('name');
} else {
$title = $brand . ' ' . $product->getData('name');
}
$product->setMetaTitle($title);
}
return $this;
}
}
カタログ閲覧ページで商品タイトルのみ変更したい場合
app/design/frontend/default/{your theme Folder}/template/page/html/head.phtml でできます
<?php if ($_product = Mage::registry('current_product')) { ?>
<title><?php echo $_product->getData('xyz') . ' ' . $_product->getName(); ?></title>
<?php }else{ ?>
<title><?php echo $this->getTitle() ?></title>
<?php } ?>
属性名と値の取得を参照してくださいMagento