Wordpress CPT несколько категорий в URL - PullRequest
0 голосов
/ 25 августа 2018

У меня есть CPT Traffi coffice. URL: www.domain.com/traffic-offices/

Когда добавляешь новый как www.domain.com/traffic-offices/germany/ все нормально. Когда я добавляю новое сообщение Saksen, он автоматически делает этот URL www.domain.com/traffic-offices/saksen, но я хочу www.domain.com/traffic-offices/germany/saksen. Если я заполню это автоматически, получим www.domain.com/traffic-offices/germany-saksen.

Как мне добиться этого URL www.domain.com/traffic-offices/germany/saksen?

    function trafficoffice_post_type() {

    // Labels
    $labels = array(
        'name' => _x("trafficoffices", "post type general name"),
        'singular_name' => _x("trafficoffices", "post type singular name"),
        'menu_name' => 'trafficoffices',
        'add_new' => _x("Add new", "trafficoffice item"),
        'add_new_item' => __("Add new"),
        'edit_item' => __("trafficoffice aanpassen"),
        'new_item' => __("Add new trafficoffice"),
        'view_item' => __("View trafficoffice"),
        'search_items' => __("Search Profiles"),
        'not_found' => __("No Profiles Found"),
        'not_found_in_trash' => __("No Profiles Found in Trash"),
        'parent_item_colon' => ''
    );

    // Register post type
    register_post_type('trafficoffice', array(
        'labels' => $labels,
        'public' => true,
        'has_archive' => false,
        'rewrite'     => array(
            'slug' => 'traffic-offices',
        ),
        'supports' => array('title', 'editor', 'thumbnail')
    ));
}

add_action('init', 'trafficoffice_post_type', 0);

1 Ответ

0 голосов
/ 25 августа 2018

Один из способов сделать это - использовать таксономии.

  1. Зарегистрируйте новую таксономию под названием "страна".
  2. Создать новую категорию "Германия" с слагом "Германия".
  3. Присвойте категорию "Германия" посту "Саксен".

Вот код для регистрации таксономии:

$labels = array(
    'name'                       => _x( 'Countries', 'taxonomy general name', 'textdomain' ),
    'singular_name'              => _x( 'Country', 'taxonomy singular name', 'textdomain' ),
    'search_items'               => __( 'Search Countries', 'textdomain' ),
    'popular_items'              => __( 'Popular Countries', 'textdomain' ),
    'all_items'                  => __( 'All Countries', 'textdomain' ),
    'parent_item'                => null,
    'parent_item_colon'          => null,
    'edit_item'                  => __( 'Edit Country', 'textdomain' ),
    'update_item'                => __( 'Update Country', 'textdomain' ),
    'add_new_item'               => __( 'Add New Country', 'textdomain' ),
    'new_item_name'              => __( 'New Country Name', 'textdomain' ),
    'separate_items_with_commas' => __( 'Separate Countries with commas', 'textdomain' ),
    'add_or_remove_items'        => __( 'Add or remove Countries', 'textdomain' ),
    'choose_from_most_used'      => __( 'Choose from the most used Countries', 'textdomain' ),
    'not_found'                  => __( 'No Countries found.', 'textdomain' ),
    'menu_name'                  => __( 'Countries', 'textdomain' ),
);

$args = array(
    'hierarchical'          => false,
    'labels'                => $labels,
    'show_ui'               => true,
    'show_admin_column'     => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var'             => true,
    //'rewrite'               => array( 'slug' => 'country' ),
);

register_taxonomy( 'country', 'trafficoffice', $args );

Убедитесь, что в настройках постоянной ссылки WordPress («Настройки» -> «Постоянные ссылки») указана категория.

/%category%/%postname%/

Подробнее о register_taxonomy () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...