رفتن به مطلب

مشکلات تاکسونومی جدید


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

سلام

1. در custom taxonomy دسته هایی را ایجاد کرده ام و نوشته هایی مربوط به هر دسته نوشته ام. نوشته ها نمایش داده می شوند، اما بر روی لینک دسته ها که کلیک می شود، ارور 404 مواجه می شوم. لطفا راهنمایی کنید ..

2. با استفاده از تابع wp_insert_post میخوام در همان تاکسونومی جدید نوشته ارسال بشه. اما هر کاری میکنم، در لیست نوشته ها در پنل، تاکسونومی مربوطه خالی میمونه و نوشته به اون دسته تعلق نمیگیره ...

لینک به ارسال

1. ساختار پیوند یکتا را یکبار دیگر به روز کنید تا کدهای لازم به htaccess اضافه شود

2. آرایه ی اضافه کردن تاکسونامی به مطلب


'tax_input' => array( 'TAX' => array ( $_POST['new_tax']) )

TAX نام تاکسونامی

new_tax نام فیلد در فرم

لینک به ارسال

با wp_list_categories


<?php $args_show_kalam_auth = array(
'show_option_all' => '',
'orderby' => 'name',
'order' => 'ASC',
'style' => 'list',
'show_count' => 1,
'hide_empty' => 1,
'use_desc_for_title' => 1,
'child_of' => 0,
'feed' => '',
'feed_type' => '',
'feed_image' => '',
'exclude' => '',
'exclude_tree' => '',
'include' => '',
'hierarchical' => 1,
'title_li' => __( '' ),
'show_option_none' => __( 'No categories' ),
'number' => null,
'echo' => 1,
'depth' => 0,
'current_category' => 0,
'pad_counts' => 0,
'taxonomy' => 'kalam_auth',
'walker' => null
); ?>

<?php wp_list_categories( $args_show_kalam_auth ); ?>

لینک به ارسال

از تابع


<?php
$taxonomy = 'my_taxonomy';
$term = 'term1';
get_term_link( $term, $taxonomy ); ?>

استفاده کنید

و باید یک صفحه هم با استفاده از کدهای category.php یا archive.php به نام taxonomy-my_taxonomy.php بسازید که my_taxonomy اسم تاکسونامی شماست

لینک به ارسال

این تابع نیز لینک هایی با همون آدرس میسازه که به مشکل قبلی برمیخوره. اون فایل رو هم ساختم ..

برای دیدن مشکل این لینک رو لطفا ببینید .. در سایدربار بر روی هر کدوم از دسته ها کلیک میشه، میره به 404 ..

لینک به ارسال

بعد از ساختن فایل هم یاید پیوند یکتا را به روز کنید

برای دیدن مشکل این لینکرو لطفا ببینید .. در سایدربار بر روی هر کدوم از دسته ها کلیک میشه، میره به 404 ..

post-336-0-09122700-1403035472_thumb.jpg

مشکلی نداره

لینک به ارسال
برای دیدن مشکل این لینکرو لطفا ببینید .. در سایدربار بر روی هر کدوم از دسته ها کلیک میشه، میره به 404 ..

لینکتون صفحه ی تاکسونامی را تشخیص می ده موقع ساخت پست تایپ اونرو برای بایگانی باز نکردید

کدهای ساخت تاکسونامی را بگذارید اینجا

لینک به ارسال

// Register Custom Taxonomy --- kalam_auth
function func_tax_kalam_auth() {
$labels_tax_kalam_auth = array(
'name' => _x( 'نویسنده های کلام', 'Taxonomy General Name' ),
'singular_name' => _x( 'نویسنده کلام', 'Taxonomy Singular Name' ),
'menu_name' => __( 'نویسنده کلام' ),
'all_items' => __( 'تمامی دسته ها' ),
'parent_item' => __( 'دسته والد' ),
'parent_item_colon' => __( 'دسته والد' ),
'new_item_name' => __( 'نام دسته جدید' ),
'add_new_item' => __( 'افزودن دسته جدید' ),
'edit_item' => __( 'ویرایش دسته' ),
'update_item' => __( 'به روزرسانی دسته' ),
'separate_items_with_commas' => __( 'Separate genres with commas' ),
'search_items' => __( 'جستجوی دسته های کلام' ),
'add_or_remove_items' => __( 'افزودن یا حذف دسته های کلام' ),
'choose_from_most_used' => __( 'انتخاب از دسته های کلام بیشتر استفاده شده' ),
);

$args_tax_kalam_auth = array(
'labels' => $labels_tax_kalam_auth, 'hierarchical' => true,
'public' => true, 'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true
);
register_taxonomy( 'kalam_auth', 'kalam', $args_tax_kalam_auth );

}
// Hook into the 'init' action
add_action( 'init', 'func_tax_kalam_auth', 0 );

ویرایش شده توسط amir68
لینک به ارسال

اسم تاکسونامیتون اگرkalam_auth است :


register_taxonomy( 'kalam_auth', array( 'post' ), $args_tax_kalam_auth );

و


'name' => _x( 'نویسنده های کلام', 'Taxonomy General Name' ),
'singular_name' => _x( 'نویسنده کلام', 'Taxonomy Singular Name' ),

نباید فارسی باشند


'name' => _x( 'kalam', 'Taxonomy General Name' ),
'singular_name' => _x( 'kalam', 'Taxonomy Singular Name' ),

البته بقیه هم نباید فارسی باشند ولی در کارکرد چندان تاثیری ندارند

لینک به ارسال

پست تایپی که براش از تاکسونامی استفاده می کنید پست تایپ دیفالت است یا پست تایپ خاص براش نوشتید؟

من از تاکسونامی تو بیش از 50 تا سایت استفاده کردم و چیزی برای پیچیدگی نداره مشکل قطعا از طرف قالب خودتونه

لینک به ارسال

پست تایپ با نام kalam هستش که به صورت زیر ساخته شده .. قالب اصلی که صحیفه هستش و دستکاری نشده .. من فقط قالب اون صفحه که لینک دادم رو ساختم ..


if ( ! function_exists('func_kalam') ) {
// Register Custom Post Type
function func_kalam() {
$labels_kalam = array(
//عنوان برای لیست نمایش تمامی پست ها از نوع کلام
'name' => _x( 'kalam', 'Post Type General Name' ),
// عنوان برای نمایش یک نوع از این پست
'singular_name' => _x( 'kalam', 'Post Type Singular Name' ),
// عنوان برای نمایش نام این نوع پست در منو داشبورد
'menu_name' => __( 'کلام' ),
// عنوان برای نمایش والد های این نوع پست
'parent_item_colon' => __( 'کلام والد:' ),
// عنوان برای نمایش تمامی پست های کلام
'all_items' => __( 'همه کلام ها'),
// عنوان برای دکمه نمایش یک پست از کلام ها
'view_item' => __( 'نمایش کلام' ),
// عنوان برای دکمه ی اضافه کردن یک کلام جدید
'add_new_item' => __( 'افزودن کلام جدید' ),
// Shortcut عنوان برای دکمه ی
'add_new' => __( 'کلام جدید' ),
// عنوان برای دکمه ی ویرایش پست
'edit_item' => __( 'ویرایش کلام' ),
// عنوان برای دکمه ی بروزرسانی یک پست
'update_item' => __( 'به روز رسانی کلام' ),
// عنوان برای دکمه جستجو در کلام ها
'search_items' => __( 'جستجو در کلام ها' ),
// عنوان برای نمایش پیام عدم جستجو موفق
'not_found' => __( 'کلامی یافت نشد !' ),
// عنوان برای نمایش عدم وجود پست مورد نظر در پست های پاک شده
'not_found_in_trash' => __( 'کلامی در زباله دان یافت نشد !' ) );

$args_kalam = array( // آرگومان های تنظیمات برای پست کلام ها
'public' => true,
// لیبل مورد استفاده برای پست کلام ها
'label' => __( 'kalam' ),
// لیبل مورد استفاده برای توضیح پست کلام ها
'description' => __( 'Kalam information pages' ),
'labels' => $labels_kalam,
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'trackbacks', 'revisions', 'custom-fields', 'page-attributes', 'post-formats' ),
'taxonomies' => array( 'post_tag' ),
'hierarchical' => true, // قابلیت وارث و موروث شدن پست ها از یکدیگر
'menu_position' => 5, // موقعیت نمایش در منو
'menu_icon' => 'saqi.ir/wp-content/uploads/2014/06/kalam_icon.png', // آدرس آیکان کنار عنوان پست در داشبورد
'can_export' => true, // اضافه کردن قابلیت خروجی گرفتن از کلام ها
'has_archive' => true, // اضافه کردن قابلیت آرشیو کردن پست ها
'exclude_from_search' => true // اضافه کردن محصولات در عنواین جستجو
);

register_post_type( 'kalam', $args_kalam ); // رجیستر کردن این نوع پست
}}

// Hook into the 'init' action
add_action( 'init', 'func_kalam');

در صورت لزوم میتونم دسترسی بدم خودتون نگاهی بیندازید استاد ..

لینک به ارسال


register_taxonomy( 'kalam_auth', array( 'kalam' ), $args_tax_kalam_auth );

و این خط کد را هم


'taxonomies' => array( 'post_tag' ),

باید تبدیل کنید به


'taxonomies' => array( 'post_tag', 'kalam_auth' ),

یکبار ساختار پیوند یکتا را هم به روز رسانی کنید

در ضمن قالب صحیفه غیر رایگانه و بحث در موردش ممنوعه

نشانی بایگانی های شما بعد از به روز رسانی پیوند یکتا باید بشود

http://site.com/kalam/kalam_auth/TERM

که TERM نام دسته ای است که می خواهید بایگانی اش را ببینید

لینک به ارسال

من روی قالب 2014 هم این کد ها رو تست کردم .. اما جوابی نگرفتم .. شما رو قالب پیش فرض مشکل رو حل کنید ..

بعد از تغییرات و ذخیره پیوند یکتا، آدرس ها به صورت http://site.com/kalam_auth/TERM در میان و مشکل قبل هست .. اما دستی هم اونی که شما فرمودید رو میزنم ، به 404 میخوره ..

لینک به ارسال

این نشانی را دستی چک کنید و اگر نتیجه نداشت (روی قالب دیفالت) لیست افزونه هاتون رو بگذارید (در قالب دیفالت باید پست تایپ و تاکسونامنی هر دو دوباره تعریف شوند)


http://site.com/?post_type=kalam&taxonomy=kalam_auth&term=TERM

یکبار هم این کد را تغییر بدید به


register_taxonomy( 'kalam_auth', array( 'post' ), $args_tax_kalam_auth );

و چند مطلب معمولی را نشانه گذاری کنید در یکی از دسته های تاکسونامی و چک کنید بایگانی برای مطالب عادی درسته یا خیر تا مشخص بشه مشکل از پست تایپه یا تاکسونامی

لینک به ارسال

این نشانی که فرمودید رو دستی وارد کردم .. بدون مشکل کار میکنه ..

فرمایش دوم رو هم انجام دادم .. پست های معمولی ای را که نشانه گذاری میکنم، آرشیوشون کار میکنه و مشکلی نداره .. با این آدرس:


http://saqi.ir/kalam_auth/TERM/

ویرایش شده توسط amir68
لینک به ارسال

از برگه ی archive.php یک کپی بگیرید با نام kalam-archive.php ذخیره اش کنید و تست بگیرید (ساختار پیوند یکتا بعد از ساخت برگه به روز رسانی شود)

اگر نشد محتویات htaccess را بگذارید اینجا

لینک به ارسال

این کد را به functions.php اضافه کنید و تست بگیرید و نتیجه را بفرمایید


add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
function add_my_post_types_to_query( $query ) {
if (!is_admin() && is_archive() && $query->is_main_query() ) {
if(is_post_type_archive('kalam')) {
$query->set( 'post_type', array( 'kalam_auth') );
}
else {
$query->set( 'post_type', array( 'post', 'kalam_auth') );
}
}
return $query;
}

لینک به ارسال

کش را تخلیه کنید و تست کنید

این اکشن به زور تاکسونامی را برای یک پست تایپ خاص تعریف می کند بعیده نشون نده

الان هم باید در بایگانی تاکسونامی در مطالب معمولی مطالب پست تایپ کلام را ببینید و هم بایگانی پست تایپ کلام

لینک به ارسال

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

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

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

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

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

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

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

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

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