WordPress

Niech ślimak niestandardowej taksonomii mieści się w ślimaku niestandardowego typu postu

  • 21 marca, 2023
  • 3 min read
Niech ślimak niestandardowej taksonomii mieści się w ślimaku niestandardowego typu postu


Obecnie drapię się po głowie, jak to uruchomić.

Zarejestrowałem niestandardowy „przewodnik” typu postu i mam niestandardową taksonomię dla typu postu „typ miejsca”.

Próbuję sprawić, by dziwka URL była

domena.com/guide/venue-type/{taxonomy}/

Próbowałem wszystkiego, aby to działało, próbując ponownie napisać ślimak, zaktualizować bezpośrednie linki, a następnie za każdym razem uzyskać stronę 404.

add_action( 'init', 'register_guide_posttype' );
function register_guide_posttype() {
    $args = [
        'label'  => esc_html__( 'Guide', 'text-domain' ),
        'labels' => [
            'menu_name'          => esc_html__( 'Guide', 'mytheme' ),
            'name_admin_bar'     => esc_html__( 'Guide', 'mytheme' ),
            'add_new'            => esc_html__( 'Add Guide', 'mytheme' ),
            'add_new_item'       => esc_html__( 'Add new Guide', 'mytheme' ),
            'new_item'           => esc_html__( 'New Guide', 'mytheme' ),
            'edit_item'          => esc_html__( 'Edit Guide', 'mytheme' ),
            'view_item'          => esc_html__( 'View Guide', 'mytheme' ),
            'update_item'        => esc_html__( 'View Guide', 'mytheme' ),
            'all_items'          => esc_html__( 'All Guide', 'mytheme' ),
            'search_items'       => esc_html__( 'Search Guide', 'mytheme' ),
            'parent_item_colon'  => esc_html__( 'Parent Guide', 'mytheme' ),
            'not_found'          => esc_html__( 'No Guide found', 'mytheme' ),
            'not_found_in_trash' => esc_html__( 'No Guide found in Trash', 'mytheme' ),
            'name'               => esc_html__( 'Guide', 'mytheme' ),
            'singular_name'      => esc_html__( 'Guide', 'mytheme' ),
        ],
        'public'              => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'show_ui'             => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'show_in_rest'        => true,
        'capability_type'     => 'post',
        'hierarchical'        => false,
        'has_archive'         => 'guide',
        'query_var'           => true,
        'can_export'          => true,
        'rewrite_no_front'    => false,
        'show_in_menu'        => true,
        'menu_position'       => 20,
        'menu_icon'           => 'dashicons-location',
        'supports' => [
            'title',
            //'editor',
            'thumbnail',
            'custom-fields',
            'page-attributes',
        ],
        'rewrite' => array('slug' => 'guide', 'with_front' => false),
    ];

    register_post_type( 'guide', $args );

A potem taksonomia

add_action( 'init', 'register_guide_tax_taxonomy' );
function register_guide_tax_taxonomy() {
    $args = [
        'label'  => esc_html__( 'Venue Type', 'mytheme' ),
        'labels' => [
            'menu_name'                  => esc_html__( 'Venue Types', 'mytheme' ),
            'all_items'                  => esc_html__( 'All Venue Types', 'mytheme' ),
            'edit_item'                  => esc_html__( 'Edit Category', 'mytheme' ),
            'view_item'                  => esc_html__( 'View Category', 'mytheme' ),
            'update_item'                => esc_html__( 'Update Category', 'mytheme' ),
            'add_new_item'               => esc_html__( 'Add new Category', 'mytheme' ),
            'new_item'                   => esc_html__( 'New Category', 'mytheme' ),
            'parent_item'                => esc_html__( 'Parent Category', 'mytheme' ),
            'parent_item_colon'          => esc_html__( 'Parent Category', 'mytheme' ),
            'search_items'               => esc_html__( 'Search Venue Types', 'mytheme' ),
            'popular_items'              => esc_html__( 'Popular Venue Types', 'mytheme' ),
            'separate_items_with_commas' => esc_html__( 'Separate Venue Types with commas', 'mytheme' ),
            'add_or_remove_items'        => esc_html__( 'Add or remove Venue Types', 'mytheme' ),
            'choose_from_most_used'      => esc_html__( 'Choose most used Venue Types', 'mytheme' ),
            'not_found'                  => esc_html__( 'No Venue Types found', 'mytheme' ),
            'name'                       => esc_html__( 'Venue Types', 'mytheme' ),
            'singular_name'              => esc_html__( 'Venue Type', 'mytheme' ),
        ],
        'public'               => true,
        'show_ui'              => true,
        'show_in_menu'         => true,
        'show_in_nav_menus'    => true,
        'show_in_quick_edit'   => true,
        'show_admin_column'    => true,
        'show_in_rest'         => true,
        'has_archive'          => true,
        'hierarchical'         => false,
        'query_var'            => true,
        'sort'                 => true,
        'rewrite' => true,
    ];
    register_taxonomy( 'venue-type', [ 'guide' ], $args );


Źródło

Warto przeczytać!  Jak śledzić historię widżetów WordPress (łatwa metoda)