رفتن به مطلب

قرار گرفتن برگه در لیست کوئری موضوعات


پست های پیشنهاد شده

با سلام

با مقداری جستجو تونستم کد زیر رو برای اضافه کردن موضوعات به برگه ها پیدا کنم :


function add_pages_meta_boxes() {
add_meta_box( 'categorydiv', __('Categories'), 'post_categories_meta_box', 'page', 'normal', 'core');
}
add_action('add_meta_boxes', 'add_pages_meta_boxes');

add_action('init','attach_category_to_page');
function attach_category_to_page() {
register_taxonomy_for_object_type('category','page');
}

مشکل اینجاست که میخوام برگه ها هم مانند پست ها توی موضاعات بیان؛ یعنی با نمایش یک موضوع هم پست ها هم برگه های اون موضوع نمایش داده بشن

چیکار میشه کرد ؟

لینک به ارسال

این کاری که کردید غلط نیست - اما هم ناقصه. چون دسته‌هایی مجزا از دسته های پست ایجاد میکنه و درواقع گلوبال نیست.و هم فقط ویژه‌ی برگه هاست.

برای نتیجه بهتر، بهتر اینه که اولاً از تکسونومی های گلوبال وردپرس استفاده کنید تا هم برای پست و هم برای برگه بصورت یکسان قابل استفاده باشه و هم برای پست تایپ خاصی نباشه تا چنانچه بعدها هر پست تایپ دیگری علاوه بر پست و برگه اضافه کردید بتونید بصورت گلوبال فراخوانی کنید:

در فایل functions.php‌ قرار بدید:


class tag_cat_for_any_post_type{
function __construct(){
add_action( 'init', array( $this, 'taxo_for_pages' ) );
if ( ! is_admin() ) {
add_action( 'pr_posts', array( $this, 'cat_archive' ) );
add_action( 'pr_posts', array( $this, 'tag_archive' ) );
}
}
function taxo_for_pages() {
register_taxonomy_for_object_type( 'post_tag', 'page' );
register_taxonomy_for_object_type( 'category', 'page' );
}
function tag_archive( $wp_query ) {
if ( $wp_query->get( 'tag' ) )
$wp_query->set( 'post_type', 'any' );
}
function cat_archive( $wp_query ) {
if ( $wp_query->get( 'cat_name' ) || $wp_query->get( 'cat' ) )
$wp_query->set( 'post_type', 'any' );
}
}
$tag_cat_for_any_post_type = new tag_cat_for_any_post_type();

لینک به ارسال

این کاری که کردید غلط نیست - اما هم ناقصه. چون دسته‌هایی مجزا از دسته های پست ایجاد میکنه و درواقع گلوبال نیست.و هم فقط ویژه‌ی برگه هاست.

برای نتیجه بهتر، بهتر اینه که اولاً از تکسونومی های گلوبال وردپرس استفاده کنید تا هم برای پست و هم برای برگه بصورت یکسان قابل استفاده باشه و هم برای پست تایپ خاصی نباشه تا چنانچه بعدها هر پست تایپ دیگری علاوه بر پست و برگه اضافه کردید بتونید بصورت گلوبال فراخوانی کنید:

در فایل functions.php‌ قرار بدید:


class tag_cat_for_any_post_type{
function __construct(){
add_action( 'init', array( $this, 'taxo_for_pages' ) );
if ( ! is_admin() ) {
add_action( 'pr_posts', array( $this, 'cat_archive' ) );
add_action( 'pr_posts', array( $this, 'tag_archive' ) );
}
}
function taxo_for_pages() {
register_taxonomy_for_object_type( 'post_tag', 'page' );
register_taxonomy_for_object_type( 'category', 'page' );
}
function tag_archive( $wp_query ) {
if ( $wp_query->get( 'tag' ) )
$wp_query->set( 'post_type', 'any' );
}
function cat_archive( $wp_query ) {
if ( $wp_query->get( 'cat_name' ) || $wp_query->get( 'cat' ) )
$wp_query->set( 'post_type', 'any' );
}
}
$tag_cat_for_any_post_type = new tag_cat_for_any_post_type();

عزیز ممنونم ولی بازم توی لیست نوشته های جدید و یا قسمت موضوعات برگه های منتشر شده نمایش داده نمیشن !

لینک به ارسال

این دیگه به کوئری شما مربوط میشه که چه پست تایپ‌هایی رو فراخوانی کنید:


'post_type' => array('page','post'),

در غیر اینصورت کوئری رو اینجا قرار بدید.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...