(ملاحظة المشرف:العنوان الأصلي كان "كيف يمكنني إنشاء إنشاء واستخدام قالب مخصص لأنواع المنشورات المخصصة في إطار عمل Genesis؟")
أنا أستخدم إطار عمل Genesis ، مع نسق فرعي "بالكامل" تقريبًا. لقد قمت بتثبيت WP أنواع النشر السهل المكون الإضافي ، وأنشأت نوعًا واحدًا مخصصًا للنشر ("الأعضاء"). لدي حقلان مخصصان تم إنشاؤهما للاستخدام لنوع النشر "العضو" (رقم الهاتف وعنوانه). أحاول معرفة كيفية عرض المعلومات من هذه الحقول في مكانين: example.com/members
و example.com/members/bob
. Genesis لا يدعم ملف single-posttype.php
النموذجي لإنشاء قالب لنوع المنشور المخصص ، لكن حتى لو كان كذلك ، فهذا لا يعنى example.com/members
. أي اقتراحات حول كيفية الحصول على المعلومات المطلوبة لعرضها؟
تبين أنني كنت مخطئًا ، يدعم Genesis استخدام طريقة page_posttype.php
لإنشاء قالب مخصص. اتضح أن تكون بسيطة جدا. إليك محتويات ملف page_members.php الخاص بي (الموجود في مجلد السمة الفرعية):
<?php
/*
Template Name: Members
*/
remove_action('genesis_loop', 'genesis_do_loop');
add_action('genesis_loop', 'custom_loop');
function custom_loop() {
global $paged;
$args = array('post_type' => 'members');
genesis_custom_loop( $args );
}
genesis();
هل يمكن لشخص توضيح الخطوة التالية من هذه العملية؟ لديّ نوع منشور مخصص مماثل في سمة تابعة لـ Genesis وأحتاج إلى تغيير الحلقة في صفحات التصنيف متعدد الوظائف بالإضافة إلى صفحات منشورات مخصصة واحدة. أين يذهب رمز مخصص للحلقة في هذه الحالة؟ شكر!
يجب أن ينتقل هذا القالب إلى مجلد السمة الفرعية ، وليس إلى سفر التكوين.
تحرير:
ستحتاج إلى إنشاء posttype.php أحادي $ يدويًا وإضافته إلى السمة التابعة كما هو مذكور أعلاه. يرجى إلقاء نظرة على وورد قالب قالب التسلسل الهرمي . غني عن القول أن أي شيء تضيفه إلى سمة فرعية سوف يتجاوز ملفات السمات الرئيسية.
ألقِ نظرة على كيفية عمل Matt Wiebe في المكون الإضافي "أذكى أنواع النشر":
http://somadesign.ca/projects/smarter-custom-post-types/
الوظيفة ذات الصلة هنا:
function my_custom_template_include( $template ) {
if ( get_query_var('post_type') == 'members' ) {
if ( is_single() ) {
if ( $single = locate_template( array( 'members/single.php') ) )
return $single;
}
else { // loop
return locate_template( array(
'members/index.php',
'members.php',
'index.php'
));
}
}
return $template;
}
add_filter( 'template_include', 'my_custom_template_include' );