سؤال

أثناء إنشاء ملحق Open Graph في Magento، واجهت مشكلة - على الرغم من أن علامتي الوصفية صحيحة، إلا أن facebook لا يمكنه التقاط علامتي og نظرًا لوجود الكثير من التعليمات البرمجية قبل علامتي التعريفية/og.

هل واجه أي شخص آخر هذا وهل لديك أي اقتراحات؟

<reference name="head">
    <block type="catalog/product_view" name="product.opengraph">
        <action method="setTemplate">
            <template>socialtag/opengraph_product.phtml</template>
        </action>
    </block>      
</reference>
هل كانت مفيدة؟

المحلول

إليك حل بديل.انها ليست لطيفة، وينبغي اعتبار الاختراق.كما يتعارض مع أغراض نظام تخطيط Magento.ومع ذلك، إذا لم يكن متطلبات تجاوز قالب الرأس الأساسي، فجرب هذا:

حقن محتوى عبر أوبزرفس الحدث

في وحدة التكوين وحدة XML الخاصة بك، أضف الحدث التالي: giveacodicetagpre.

ثم تقوم بإنشاء فئة مراقب للمطابقة: giveacodicetagpre.


حتى الآن أستطيع أن أرى، هذه طريقة فقط لحل مشكلتك.لا تصبح كتلة رأس الأسهم أو قالبها الأساسي أحكاما لإضافة علامات meta أعلاه دعوتها للطفل HTML.

نصائح أخرى

لست متأكدًا من ما الذي يتم عرضه بالضبط في الرأس والذي يدفع علامات التعريف الخاصة بك إلى الأسفل حتى الآن، ولم أر أن هذه مشكلة (باستثناء "القاعدة العامة" التي تنص على وضع علامات التعريف في أعلى مستوى ممكن في HEAD).

على أية حال، يمكنك تجربة هذا:

<reference name="head">
    <block type="catalog/product_view" name="product.opengraph" before="-">
        <action method="setTemplate">
            <template>socialtag/opengraph_product.phtml</template>
        </action>
    </block>      
</reference>

لاحظ ال before="-" يصف.سيتم التقاط هذا أثناء إنشاء الكتلة (انظر Mage_Core_Model_Layout::_generateBlock) وإدراجها في الجزء العلوي من مكدس الكتلة الأصلية (انظر Mage_Core_Block_Abstract::insert).

لسوء الحظ، هذا وحده لن يحل مشكلتك، حيث أن قالب Magento head الخاص بالمخزون لا يعرض أطفاله بترتيب مصنف.لذلك سيتعين عليك تجاوز هذا القالب بنفسك وفرض علامة الفرز.

للقيام بذلك، قم بتغيير قالب الرأس عبر تخطيط XML:

<reference name="head">
    <action method="setTemplate">
        <template>your/module/head.phtml</template>
    </action>
</reference>

وفي هذا القالب، قم بعرض HTML الخاص بطفلك كما يلي:

<?php echo $this->getChildHtml('', true, true) ?>

حيث تكون الوسيطة الثالثة هي علامة الفرز التي تخبر الكتلة بإظهار أطفالها وفقًا لترتيبك المُدار.سيؤدي هذا إلى الحصول على الكتلة الخاصة بك في الأعلى.

في ملاحظة جانبية، نظرًا لأنه سيتعين عليك المرور بكل هذه المشاكل على أي حال لتوسيع القالب الرئيسي، فقد ترغب أيضًا في رفع العرض الفرعي بالقرب من الجزء العلوي من القالب (فوق CSS/JS الخاص بك).


علاوة:

لماذا تستفيد من catalog/product_view حاجز؟راجع هذا الامتداد للحصول على نموذج معياري جيد لمقارنة الكود الخاص بك مع: https://github.com/thaddeusmt/magento-fb-opengraph/ - يغطي تنفيذها علامات OG خارج نطاق المنتجات فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top