web-dev-qa-db-fra.com

Paramètres de type de message personnalisé et de permalien

Avoir Wordpress à la racine du site. Vous souhaitez que la structure de l'URL pour les pages soit exemple.com/{page-slug} et pour les publications exemple.com/academy/{post-slug}. Mes permaliens sont définis sur custom avec/academy /% postname% comme structure.

Cela fonctionne très bien. Cependant, j'ai un type de message personnalisé appelé définitions. J'aimerais que la structure de l'URL de définitions soit exemple.com/glossary/{definition-slug}. Actuellement, avec la configuration ci-dessus, je reçois une URL de example.com/academy/definition/{definition-slug}

Existe-t-il un moyen d'exclure les types de publication personnalisés des paramètres de publication permalien?

Voici ma définition de poste personnalisé:

function create_posttypes() {
    $labels1 = array(
            'name' => __( 'Definitions' ),
            'singular_name' => __( 'Definition' ),
            'all_items' => __( 'All Definitions' ),
            'view_item' => __( 'View Definition' ),
            'add_new_item' => __( 'Add New Definition' ),
            'edit_item' => __( 'Edit Definition' ),
            'update_item' => __( 'Update Definition' ),
            'search_items' => __( 'Search Definitions' ),
            'not_found' => __( 'Not Found' ),
            'not_found_in_trash' => __( 'Not Found in Trash' ),
        );
    $args1 = array(
            'label' => 'Definitions',
            'description' => 'Definitions received',
            'labels' => $labels1,
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug', 'definitions'),
            'hierarchical' => false,
            'show_ui' => true,
            'show_in_menu' => true,
            'show_in_nav_menus' => true,
            'show_in_admin_bar' => true,
            'menu_position' => 5,
            'can_export' => true,
            'exclude_from_search' => false,
            'publicly_queryable' => true,
            'capability_type' => 'page',
            'supports' => array('title','thumbnail', 'revisions', 'page-attributes')
        );
    register_post_type( 'definitions', $args1 );
}
1
jppower175

Vous pouvez utiliser le paramètre rewrite pour désactiver la partie avant des URL (/academy/ dans votre cas) pour les types de publication personnalisés.

function create_posttypes() {
    $labels1 = array(
            'name' => __( 'Definitions' ),
            'singular_name' => __( 'Definition' ),
            'all_items' => __( 'All Definitions' ),
            'view_item' => __( 'View Definition' ),
            'add_new_item' => __( 'Add New Definition' ),
            'edit_item' => __( 'Edit Definition' ),
            'update_item' => __( 'Update Definition' ),
            'search_items' => __( 'Search Definitions' ),
            'not_found' => __( 'Not Found' ),
            'not_found_in_trash' => __( 'Not Found in Trash' ),
        );
    $args1 = array(
            'label' => 'Definitions',
            'description' => 'Definitions received',
            'labels' => $labels1,
            'public' => true,
            'has_archive' => true,
            'rewrite' => array(
                'slug' => 'glossary',
                'with_front' => false,
             ),
            'hierarchical' => false,
            'show_ui' => true,
            'show_in_menu' => true,
            'show_in_nav_menus' => true,
            'show_in_admin_bar' => true,
            'menu_position' => 5,
            'can_export' => true,
            'exclude_from_search' => false,
            'publicly_queryable' => true,
            'capability_type' => 'page',
            'supports' => array('title','thumbnail', 'revisions', 'page-attributes')
        );
    register_post_type( 'definitions', $args1 );
}
1
Dave Romsey