با یک تیر دو نشان بزنید🎯 یک هدیه ۳ میلیون تومانی به همراه ۲۵٪ تخفیف روی همه دوره‌های متخصص😍
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ رضا زمانی
ست نشدن permalinkهای پست تایپ پیشفرض، روی کاستوم پست تایپ جدید
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۱۷ شهریور ۱۴۰۳

سلام.من کاستوم پست تایپ تکنولوژی رو ایجاد کردم و اسلاگ این پست تایپ رو بصورت زیر تنظیم کردم:

 'rewrite' => array('slug' => 'technology'),

 و اسلاگ دسته بندی را بصورت زیر:

'rewrite'      => array( 'slug' => 'tech_category'),

و سپس لینک پیوندهای یکتا را بصورت زیر تنظیم کردم.تا دسته بندی هم به url اضافه شود

http://7learn-wp.local/%category%/%postname%/

ولی url لینک‌ها بصورت زیر نمایش داده میشود 

http://7learn-wp.local/technology/برای کودکان در چه سنی میتوان گوشی خرید/

یعنی دسته بندی را را به url اضافه نمی‌کند

بطور کلی کلا از هیچکدام از permalink پیش فرض تنظیمات تبعیت نمی‌کند.

سلام،

معمولاً وقتی یه پست تایپ سفارشی درست می‌کنی، وردپرس به طور پیش‌فرض دسته‌بندی‌ها رو توی URL نمی‌ذاره، مگر اینکه خودت بهش بگی.

1. تنظیم پست تایپ
اول باید توی کد پست تایپت چند تا تغییر بدی. مثلاً باید with_front رو false کنی و از has_archive استفاده کنی تا آرشیو هم داشته باشه. اینجوری:

function create_custom_post_type() {
   register_post_type( 'technology',
       array(
           'labels' => array(
               'name' => __( 'Technologies' ),
               'singular_name' => __( 'Technology' )
           ),
           'public' => true,
           'has_archive' => true,
           'rewrite' => array( 'slug' => 'technology', 'with_front' => false ),
           'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
           'taxonomies' => array('category'), // اضافه کردن دسته‌بندی
       )
   );
}
add_action( 'init', 'create_custom_post_type' );

2. تنظیم دسته‌بندی (Taxonomy)
بعد، باید دسته‌بندیت رو هم درست کنی. اینطوری:

function create_custom_taxonomy() {
   register_taxonomy( 'tech_category', 'technology', array(
       'label' => __( 'Technology Categories' ),
       'rewrite' => array( 'slug' => 'tech_category', 'with_front' => false ),
       'hierarchical' => true,
   ));
}
add_action( 'init', 'create_custom_taxonomy' );

3. ذخیره تنظیمات پیوند یکتا
حالا برو به تنظیمات > پیوندهای یکتا و یک بار دکمه "ذخیره تغییرات" رو بزن تا همه چیز به‌روزرسانی بشه.

4. نتیجه نهایی
بعد از این کارها، باید لینک‌هات به شکل درستی نمایش داده بشن. مثلاً:

http://7learn-wp.local/tech_category/technology/برای-کودکان-در-چه-سنی-میتوان-گوشی-خرید/

نکته: اگه مشکل حل نشد، کش سایت رو پاک کن یا مطمئن شو که پست‌هات توی دسته‌بندی درست قرار دارن.

محسن موحد ۱۸ شهریور ۱۴۰۳، ۰۸:۰۸

سلام مجدد.مشکل رفع نشد.اضافه کردن این خط کد

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

  به کاستوم پست تایپ سبب افزودن دسته بندی پست تایپ پیش فرض وردپرس(category) به کاستوم پست تایپ میشه و باید مطالب کاستوم پست تایپ رو درون این دسته بندی پیش فرض قرار داد تا دسته بندی به url اضافه بشه.ولی سوال من حالتی است که بخواهیم دسته بندی تکزونومی tech_category کاستوم پست تایپ، به url اضافه شود که با اقداماتی که فرمودید حل نشد.

این کدهایی است که نوشتم:

/**
 * Register a custom post type called "technology".
 **/
function lu_register_post_type_tech()
{
    $labels = array(
        'name' => 'اخبار تکنولوژی',
        'singular_name' => 'خبر تکنولوژی',
        'menu_name' => 'اخبار تکنولوژی',
        'name_admin_bar' => 'خبر تکنولوژی',
        'add_new' => 'افزودن خبر جدید',
        'add_new_item' => 'افزودن آیتم جدید',
        'new_item' => 'خبر جدید',
        'edit_item' => 'ویرایش خبر',
        'view_item' => 'مشاهده خبر',
        'all_items' => 'همه اخبار',
        'search_items' =>'جستجوی خبر',
        'parent_item_colon' => 'اخبار والد',
        'not_found' =>'خبری یافت نشد',
        'not_found_in_trash' => 'مورد در سطل زباله یافت نشد',
        'featured_image' => 'تصویر شاخص',
        'set_featured_image' => 'انتخاب تصویر شاخص',
        'remove_featured_image' => 'حذف تصویر شاخص',
        'use_featured_image' => 'استفاده به عنوان تصویر شاخص',
        'archives' => 'آرشیو اخبار',
        'insert_into_item' =>'افزودن به خبر',
        'uploaded_to_this_item' => 'آپلود',
        'filter_items_list' => 'فیلتر لیست اخبار',
        'items_list_navigation' => 'پیمایش لیست اخبار',
        'items_list' => 'لیست اخبار',
    );
    $args = array(
        'labels' => $labels, 
        'public' => true,
        'publicly_queryable' => true, 
        'show_ui' => true,
        'show_in_menu' => true, 
        'query_var' => true, 
        'show_in_admin_bar'     => true,
        'show_in_nav_menus'     => true,
        'can_export'            => true,
        'exclude_from_search'   => false,
        'capability_type' => 'post', 
        'has_archive' => true, 
        'hierarchical' => true,  
        'menu_position' => null,
        'menu_icon' => 'dashicons-book',        
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
        'rewrite' => array('slug' => 'technology' , 'with_front' => false),
        'taxonomies' => ['category'], // افزودن تکزونومی دسته بندی پست تایپ پیش فرض وردپرس
    );
    register_post_type('tech', $args); 
}
add_action('init', 'lu_register_post_type_tech');
//ایجاد تکزونومی دسته بندی
function lu_register_taxonomy_category_tech()
{
    $labels = array(
        'name' => 'دسته‌بندی‌ها',
        'singular_name' => 'عنوان دسته',
        'search_items' => 'جستجوی دسته',
        'all_items' => 'همه دسته‌بندی‌ها',
        'view_item' => 'مشاهده دسته',
        'parent_item' => 'والد دسته‌بندی',
        'parent_item_colon' => 'والد دسته‌بندی:',
        'edit_item' => 'ویرایش دسته‌بندی',
        'update_item' => 'بروزرسانی دسته‌بندی',
        'add_new_item' => 'ذخیره',
        'new_item_name' => 'عنوان جدید دسته‌بندی',
        'not_found' => 'دسته بندی یافت نشد.',
        'back_to_items' => 'بازگشت به دسته‌بندی‌ها',
        'menu_name' => 'دسته‌بندی‌ها',
    );
    $args = array(
        'labels' => $labels,
        'hierarchical' => true, 
        'show_ui' => true,
        'show_admin_column' => true,
        'query_var' => true,
        'rewrite' => array('slug' => 'tech_category' , 'with_front' => false), // اسلاگ دسته بندی
    );
    register_taxonomy('tech_category', 'tech', $args);
    }
add_action('init', 'lu_register_taxonomy_category_tech');

 

رضا زمانی ۱۸ شهریور ۱۴۰۳، ۰۹:۲۹