Frage

Wie erstelle ich einen Standard-Meta-Titel für Kategorien für alle Kategorieseiten?

Ich möchte, dass es so etwas ist:

<title>{{category name}} - blah blah blah blah</title>

Ich möchte, dass es nur für Kategorieseiten die Standardeinstellung ist.

Ist das möglich?

War es hilfreich?

Lösung

Fügen Sie den folgenden Code in Ihre head.phtml

if (Mage::registry(current_category)) {
    echo '<title> Categoryname- keyword1 keyword2 keyword3"';
}

BEARBEITEN

Soweit ich weiß Mage::registry('current_category') kann verwendet werden, um zu überprüfen, ob wir in einer Kategorie sind.Sehen Alanstorms Antwort.Die wichtigen Teile dieser Antwort werden unten als Referenz hinzugefügt

Aktuelle Versionen von Magento registrieren bestimmte globale Variablen (keine PHP-Globals, sondern globale Dinge für das Magento-System) auf bestimmten Seiten.

Aufruf der folgenden

   $category = Mage::registry('current_category');         
   $product  = Mage::registry('current_product');
   $product  = Mage::registry('product');

gibt entweder null zurück, wenn die Objekte nicht gesetzt wurden (dh.sie befinden sich auf einer Seite ohne Kategorie oder Produkt) oder geben Kategorie- und Produktobjekte zurück.

Wenn ein Produktobjekt zurückgegeben wird, befinden Sie sich auf einer Produktseite.

Wenn kein Produktobjekt zurückgegeben wird, aber ein Kategorieobjekt, befinden Sie sich auf einer Kategorieseite.

dann können Sie drucken, was Sie wollen.

Andere Tipps

Der sauberste Weg, dies durchzuführen, besteht darin, das Ereignis zu beobachten controller_action_layout_generate_blocks_after.Also die wichtigen Teile deines Moduls (Namespace_Module) wäre

Datei : app\code\local\Namespace\Module\etc\config.xml

<config>
    <frontend>
        <events>
            <controller_action_layout_generate_blocks_after>
                <observers>
                    <change_category_page_title>
                        <class>namespace_module/observer</class>
                        <method>setCategoryPageTitle</method>
                    </change_category_page_title>
                </observers>
            </controller_action_layout_generate_blocks_after>
        </events>
    </frontend>
</config>

Hier registrieren wir einen Beobachter für die Veranstaltung controller_action_layout_generate_blocks_after.Dieses spezielle Ereignis wird ausgelöst, nachdem jeder Block aus dem Layout generiert wurde.Zu diesem bestimmten Zeitpunkt können wir also auf alle Blöcke im Layout zugreifen.Der Block, der uns hier interessiert, ist head block (dh Mage_Page_Block_Html_Head).Dieser Block enthält die title Element.

Datei : app\code\local\Namespace\Module\Model\Observer.php

<?php
class Namespace_Module_Model_Observer
{

    const CATEGORY_TITLE_CONSTANT = 'blah blah blah blah';

    public function setCategoryPageTitle(Varien_Event_Observer $observer)
    {
        //ensure modification applies only for category page.
        if (Mage::registry('current_category')) {
            //get head block
            $head = $observer->getLayout()->getBlock('head');
            $title = $this->_prepareCategoryTitle();
            //set new title
            $head->setTitle($title);
        }
    }

    protected function _prepareCategoryTitle()
    {
        return Mage::registry('current_category')->getName()
            . '-'
            . self::CATEGORY_TITLE_CONSTANT;
    }
}

Das ist unsere Beobachterklasse.Die Methode, die den Kategorietitel ändert, ist setCategoryPageTitle().Was diese Funktion macht, ist einfach.Es stellt sicher, dass wir uns auf einer Kategorieseite befinden.Dann wird es greifen die head blockieren und einen neuen Titel festlegen.Um einen neuen Titel festzulegen, verwenden wir eine geschützte Funktion _prepareCategoryTitle().Ich habe diese Funktion entsprechend dem Bedarf dieser Frage definiert.Derzeit wird es zurückkehren category name + blah blah blah.So können Sie diese Methode ändern und den Titel nach Ihren Wünschen ändern.

Beachten:Hier KEINE KERNBEARBEITUNGEN, KEINE ABWECHSLUNG IN STANDARDVORLAGEN.Das ist warum dies die sauberere Methode ist.

Grundsätzlich Titel der Seiten aus dem Meta-Titelfeld der Kategorie.

Für Ihre Anforderung müssen Sie den generellen generationsporticetagcode umschreiben

umschreiben Klasse:

generasacodicetagpre.

config.xml:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top