Переписати постійна посилання на замовлення після типу із терміном таксономії?


16

Я намагаюся переписати свій URL-адресу для користувальницького_типу_типу wr_eventsз одним із його термінів custom_taxonomy зevent_type

add_action('init', 'wr_events');

function wr_events() {

     register_taxonomy(
        'event_type',
        'wr_event',
        array(
            'label' => 'Types',
            'singular_label' => 'Typ',
            'hierarchical' => true,
            'query_var' => true,
            'rewrite' => array('slug' => 'events'),
        )
    );

    $labels = array(
        'name' => _x('Events', 'post type general name'),
        'singular_name' => _x('Event', 'post type singular name')
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'query_var' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'menu_position' => null,
        'supports' => array('title','editor','thumbnail', 'excerpt'),
        'rewrite' => array(
            //'slug' => 'event',
            'slug' => 'events/%event%',
            'with_front' => false
        ),
        'has_archive' => 'events'
    ); 

    register_post_type( 'wr_event' , $args );
    flush_rewrite_rules();
}

add_action('save_post', 'save_details');

add_filter('post_type_link', 'events_permalink_structure', 10, 4);
function events_permalink_structure($post_link, $post, $leavename, $sample)
{
    if ( false !== strpos( $post_link, '%event%' ) ) {
        $event_type_term = get_the_terms( $post->ID, 'event_type' );
        $post_link = str_replace( '%event%', array_pop( $event_type_term )->slug, $post_link );
    }
    return $post_link;
}

Тож у моєму випадку моїми умовами таксономії були б "майстер-класи" чи "лекції" тощо, url/events/lecturesабо url/events/workshopsперераховані всі мої публікації, пов'язані з цією "категорією", url/eventsпоказує спеціальний архів для всіх моїх подій. -> це якраз те, що я хочу, проте єдине, що не працює - це повний URL-адреса для самої користувальницької публікації ...

url/events/lectures/post-name - кидає 404!

Будь-яка ідея, чому це відбувається? Моя events_permalink_structure()функція, здається, працює коректно, оскільки вона замінює мою перманентну точність так, як я хочу.

Я встановив плагін "Перезаписати аналізатор", і він показує, що "Regex порожній" для wr_event.

Я також спробував очистити правила переписування, відвідавши налаштування постійної посилання. Однак ефекту немає.

Відповіді:


10

Змініть всі свої% event% до% event_type%. Я сподіваюся, що це працює для вас.


Дуже дякую! Дивовижно! Не
розумійте,

2
@mathiregister - це тому, що WP не автоматично розуміє тег% event%, але він розуміє, що% event_type% відповідає вашій таксономії типу події.
Стівен Харріс

Тепер у мене є власний тип публікації зі слугом, /catalog/який відображає всі повідомлення, /katalog/whatever/відображає повідомлення в користувальницькій таксономії зі службою, що завгодно, і /katalog/whatever/mypostвідображає одну посаду, яка належить до таксономії незалежно від того Просто поставте замість %event%коду над вашою %%
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.