للخبراء في بلوجر ، كيف يمكن تنفيد الاستثناءت التالية في الكود ؟!

السلام عليكم

لدي اشكالية كبيرة ،

لدي كود اريد أن يظهر في جميع التدوينات ، وصفحات البحث .. وفي صفحات تابثة محددة

أي ، جميع أنواع الصفحات باستناء الصفحات التابثة ، اريد أن يظهر في صفحات محددة بعينها

جربت هذا الكود ولم يعمل

<b:if cond='data:blog.pageType == "item" and {data:view.pageId in (2210386170839745615, 123456789, 123456789)}  and  data:blog.pageType == "archive" and data:blog.pageType == "error_page"'>

وعليكم السلام،

أرى من الأفضل أن تضع في الشرط الصفحات التي لا تريد أن يظهر لك فيها المحتوى وفي العكس (else) تضع المحتوى الذي تريد أن يظهر في جميع الصفحات الأخرى عدا التي تم تحديدها كي تتجنب كتابة شرط طويل كما لن تحتاج لتحديد جميع الصفحات التي ترغب في ظهور المحتوى بداخلها وسيكون الكود لديك على الشكل التالي:

<b:if cond='data:view.pageId in [123, 456, 789]'>
    هناك لاتكتب أي شيء
    <b:else/>
   هنا تضع المحتوى الذي تريده أن يظهر في جميع الصفحات عدى تلك التي قمت بتحديدها والتي تمتلك المعرفات التالية 123, 456, 789.
</b:if>

إذا أردت أن تعتمد على الطريقة الأولية التي اتبعت فعليك أولا إصلاح الكود الخاص بالعامل in حيث يتم تحديد معرفات الصفحات داخل أقواس معقوفة [] وليس أقواس عادية ()، إضافة إلى ذلك لاحاجة لك في استعمال {}، ثانيا لديك خطأ في الشرط حيث تستعمل عامل AND وهو غير صحيح فمن غير الممكن أن يكون الزائر في صفحة المواضيع (و) الصفحات الثابتة (و) الأرشيف...إلخ نفس الوقت وبالتالي سيتحتم عليك استخدام معامل OR ليكون الشرط صحيح مع إستخدام AND فقط عند مقارنة صفحات المواضيع والصفحات التابثة (Item Pages) والتأكد من أن معرف الصفحة ليس ضمن تلك المعرفات التي لاتريد أن يظهر لك فيها المحتوى وكي تتضح لك الرؤية ستجد ترجمة ماقلته أعلاه من خلال الكود.

<b:if cond='data:view.isMultipleItems OR data:view.isError OR (data:view.isSingleItem AND data:view.pageId in [3482417648946240052] )'>
    هنا تضع المحتوى الذي تريده أن يظهر في جميع الصفحات مع إمكانية تحديد الصفحات الثابثة التي يظهر فيها عن غيرها.
</b:if>

data:view.isMultipleItems: ترجع (true) إذا كان المستخدم داخل إحدى الصفحات التي تحتوي على عدة مواضيع، كالرئيسية، البحث، الأرشيف إلخ...

data:view.isSingleItem: ترجع (true) إذا كان المستخدم داخل إحدى الصفحات التي تحتوي على موضوع واحد، كصفحة المواضيع والصفحات التابثة.

data:view.isError: ترجع (true) إذا كان المستخدم في صفحة الخطأ.

أتمنى أن يكون هذا قد أجاب عن تساؤلك.

شكرا لك على هذا الشرح المفيد

الكود لم يعمل ، قام باخفاء الكود في جميع الصفحات ولم يهتم ب b else

هل توجد طريقة لجعل الكود يظهر في جميع الصفحات التابثة فقط ، باستثناء صفحات محددة بعينها

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

هل توجد طريقة لجعل الكود يظهر في جميع الصفحات التابثة فقط ، باستثناء صفحات محددة بعينها

يمكنك الحصول على تلك النتيجة من خلال هذا الكود:

<b:if cond='data:view.isPage and data:view.pageId not in [123]'>
     هنا تضع المحتوى الذي تريده أن يظهر في جميع الصفحات التابثة عدى الصفحة ذات المعرف 123
</b:if>