WordPress : Supprimer le slug CPT de l’URL WordPress

Publié par Jean-Michel le

J’ai créé un type de publication personnalisé avec le slug (exemple : agent de crédit). Je souhaite supprimer le slug CPT de l’URL. J’ai utilisé le code ci-dessous, j’ai vu tellement de discussions comme celle-ci, mais rien ne fonctionne.

function custom_post() {
register_post_type(
    'loan_officers', array(
      'labels' => array('name' => __( 'Loan Officers' ), 'singular_name' => __( 'Loan Officer' ) ),
      'public' => true,
      'has_archive' => true,
      'menu_icon' => 'dashicons-calendar-alt',
      'supports' => array('title', 'editor', 'thumbnail',  'page-attributes'),
      'publicly_queryable' => true,  // you should be able to query it
      'show_ui' => true,  // you should be able to edit it in wp-admin
      'show_in_menu' => true,
      'show_in_admin_bar' => true,
      'exclude_from_search' => false,  // you should exclude it from search results
      'show_in_nav_menus' => true,  // you shouldn't be able to add it to menus
      'has_archive' => false,  // it shouldn't have archive page
      'rewrite' => array(
        'slug' => 'loan-officer',
        'with_front'  => false,
      )
    )
);
  }
 add_action( 'init', 'custom_post');

function gp_remove_cpt_slug( $post_link, $post ) {
if ( 'loan_officers' === $post->post_type && 'publish' === $post->post_status ) {
    $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link );
}
return $post_link;
}
add_filter( 'post_type_link', 'gp_remove_cpt_slug', 10, 2 );


function gp_add_cpt_post_names_to_main_query( $query ) {
if ( ! $query->is_main_query() ) {
    return;
}
if ( ! isset( $query->query['page'] ) || 2 !== count( $query->query ) ) {
    return;
}
if ( empty( $query->query['name'] ) ) {
    return;
}
$query->set( 'post_type', array( 'post', 'page', 'loan_officers' ) );
}
add_action( 'pre_get_posts', 'gp_add_cpt_post_names_to_main_query' );

Pourtant, le slug arrive dans l’URL lorsque j’ai essayé de voir depuis l’administrateur et sans slug, cela fonctionne également. Quelqu’un peut-il suggérer comment rediriger à partir de

domaine.com/loan-officer/testing à domaine.com/testing

Merci.

Solution n°1 trouvée

Sur la base des réponses fournies dans la question à laquelle j’ai lié, vous seriez probablement mieux servi d’utiliser un plugin tel que Permalink Manager Lite. Il s’occupe pour vous de la redirection des anciennes URL et gère également le problème de duplication.

L’option de code uniquement serait cette réponse, mais cela dépend de combien vous voulez vous coder.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *