رفتن به مطلب

مشکل آدرس های دارای Taxonomy و post_type


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

درود دوستان من...

سوال: در وردپرس دو CPT داریم به اسمهای anime و manga که هر CPT دارای Taxonomy به اسم post_type است که دارای Termهای anime,animation,manga,comic است.

انیمه و انیمیشن ها در CPT مربوط anime ذخیره می شوند و از طریق taxonomy مشخص می شوند که anime هستند یا animation

مانگا و کمیک ها در CPT مربوط manga ذخیره می شوند و از طریق taxonomy مشخص می شوند که manga هستند یا comic

در نتیجه آدرسی که ساخته می شود به این شکل است:

برای انیمه ها و انیمیشن ها:


http://mysite.xxx/anime/ HYPERLINK "http://mysite.xxx/anime/عنوان"عنوان پست

برای مانگا و کمیک ها:


http://mysite.xxx/manga/ عنوان پست

حالا چیزی که لازم است این است که این آدرس ها بر اساس taxonomy مربوط post_type تغییر کند، یعنی اگر انیمیشن است:


CPT Anime && Taxonomy == anime-> http://mysite.xxx/anime/ HYPERLINK "http://mysite.xxx/anime/عنوان"عنوان پست
CPT Anime && Taxonomy == animation-> http://mysite.xxx/animantion/ HYPERLINK "http://mysite.xxx/animantion/عنوان"عنوان پست
CPT Manga && Taxonomy == manga-> http://mysite.xxx/manga/ HYPERLINK "http://mysite.xxx/manga/عنوان"عنوان پست
CPT Manga && Taxonomy == comic-> http://mysite.xxx/comic/ HYPERLINK "http://mysite.xxx/comic/عنوان"عنوان پست

راه حلی که تست شده:


add_filter('post_type_link', 'events_permalink_structure', 10, 4);
function events_permalink_structure($post_link, $post, $leavename, $sample){
$types=wp_get_object_terms( $post->ID, 'post_types' );
if (( 'animation' == $types[0]->slug )or ( 'comic' == $types[0]->slug )) {
$post_link = str_replace( array('/anime/','/manga/'), '/'.$types[0]->slug.'/', $post_link );
}
return $post_link;
}

اتفاقی که رخ می دهد:

آدرس ها به درستی عوض می شوند ولی تمام ادرس های عوض شده ارور 404 می دهند.

ادامه راه حلی که پیش بینی میشد حلال مشکل خواهد بود:


add_action('init','animation_init');
function animation_init() {
global $wp,$wp_rewrite,$wp_query;
$wp_rewrite->add_rule('comic/([^/]+)/',
'index.php?post_type=manga&name=$matches[1]', 'top');
}

ولی متاسفانه جواب نداد.

حل مشکل آن چیست؟

ممنون میشم جواب بدید...

لینک به ارسال

اینجا یک نمونه هست

http://shibashake.com/wordpress-theme/add-custom-taxonomy-tags-to-your-wordpress-permalinks


add_filter('post_link', 'rating_permalink', 10, 3);
add_filter('post_type_link', 'rating_permalink', 10, 3);

function rating_permalink($permalink, $post_id, $leavename) {
if (strpos($permalink, '%rating%') === FALSE) return $permalink;

// Get post
$post = get_post($post_id);
if (!$post) return $permalink;

// Get taxonomy terms
$terms = wp_get_object_terms($post->ID, 'rating');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug;
else $taxonomy_slug = 'not-rated';

return str_replace('%rating%', $taxonomy_slug, $permalink);
}

در بخش ساختار پیوند یکتا با مقدار %rating% جایگزین میشود

لینک به ارسال

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

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

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

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

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

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

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

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

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