Настраиваемая таксономия для постоянной ссылки типа поста и страницы архива - PullRequest
0 голосов
/ 01 октября 2018

У меня есть 3 пользовательских типа сообщений, каждый из которых имеет определенную таксономию определения ( abc _types).

Моя первая проблема заключается в том, что я ранее использовал страницу archive-abc.php дляотобразить страницу архива для разных типов постов, которые у меня есть, но, похоже, они перестали работать каждый раз, когда я использовал перезапись для своих постоянных ссылок (до того, как она использовалась как / публикации / TITLE-OF-POST, и теперь перезапись позволяет мне использоватьтакже пользовательская таксономия в URL-адресе, такая как / публикации / КНИГИ / TITLE-OF-POST).

Я могу создать шаблон страницы для отображения содержимого публикаций, но лучше использовать страницу архива из-за второй проблемы, с которой я сталкиваюсь ... Я скопировал код для одного из типов записей, таксономиии переписать ниже.

Вторая проблема, с которой я столкнулся, связана с пользовательской таксономией.Если я получаю доступ к пользовательской странице таксономии напрямую (/ публикации / книги), она использует archive.php для отображения контента, который очень похож на шаблон блога.Есть ли способ определить стандартную страницу отображения для пользовательской таксономии?Я пытался использовать таксономию-публикации.php, но это не работает.

Я бы хотел использовать архив-публикаций.php как для архива пользовательских типов записей, так и для таксономии.

Вот как создается тип моих сообщений в function.php

    $labels = array(
    "name" => __( "Publications"),
    "singular_name" => __( "Publication"),
    "featured_image" => __( "Publication Cover"),
    "set_featured_image" => __( "Set Publication Cover"),
    "remove_featured_image" => __( "Remove Publication Cover"),
    "use_featured_image" => __( "Use Publication Cover"),
);

$args = array(
    "label" => __( "Publications"),
    "labels" => $labels,
    "description" => "",
    "public" => true,
    "publicly_queryable" => true,
    "show_ui" => true,
    "show_in_rest" => false,
    "rest_base" => "",
    "has_archive" => true,
    "show_in_menu" => true,
    "show_in_nav_menus" => true,
    "exclude_from_search" => false,
    "capability_type" => "post",
    "map_meta_cap" => true,
    "hierarchical" => false,
    "rewrite" => array( "slug" => "publications/%publications_types%", "with_front" => true ),
    "query_var" => true,
    "menu_icon" => "dashicons-book-alt",
    "supports" => array( "title", "editor", "thumbnail" ),
    "taxonomies" => array( "category", "post_tag" ),
);

register_post_type( "publications", $args );

Вот таксономия

$labels = array(
    "name" => __( "Publication types" ),
    "singular_name" => __( "Publication type" ),
);

$args = array(
    "label" => __( "Publication types" ),
    "labels" => $labels,
    "public" => true,
    "hierarchical" => true,
    "label" => "Publication types",
    "has_archive" => true,
    "show_ui" => true,
    "show_in_menu" => true,
    "show_in_nav_menus" => true,
    "query_var" => true,
    "rewrite" => array( 'slug' => 'publications', 'with_front' => true, ),
    "show_admin_column" => false,
    "show_in_rest" => false,
    "rest_base" => "publications_types",
    "show_in_quick_edit" => false,
);
register_taxonomy( "publications_types", array( "publications" ), $args );

И URL переписывают для таксономии CPT (я получил код от https://wordpress.stackexchange.com/questions/5308/custom-post-types-taxonomies-and-permalinks)

function wpse_5308_post_type_link( $link, $post ) {
    if ( $post->post_type === 'publications' ) {
        if ( $terms = get_the_terms( $post->ID, 'publications_types' ) )
            $link = str_replace( '%publications_types%', current( $terms )->slug, $link );
    }

    return $link;
}

add_filter( 'post_type_link', 'wpse_5308_post_type_link', 10, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...