web-dev-qa-db-fra.com

uRL personnalisée de type archive de la page de publication pour pointer sur le lien permanent de cette page

Je souhaite que ma "page d'archive de type publication personnalisée" pointe vers Page.

La situation est la suivante:

J'ai Page dans Wordpress avec le permalien http://myurl.com/galleries. Cette page affiche la liste des publications avec type de publication personnalisé = vmgallery. J'ai une logique personnalisée pour cette page qui fonctionne bien.

Sous un autre angle, cette page fonctionne comme une "page d'archive de type de publication personnalisée", car elle affiche toutes les publications pour le type de publication personnalisé donné vmgallery. Actuellement, si l’utilisateur accède à http://myurl.com/vmgallery/ wordpress charge la page d’archive (archive.php), je souhaite plutôt que la page http://myurl.com/galleries soit chargée.

Comment y parvenir?

2
renathy

Vous avez plusieurs options ici.

1. Définir le type d'archive d'archive de type de publication lors de son enregistrement

En définissant 'has_archive' => 'galleries', vous pouvez définir un slug d'archive de type publication personnalisé. Vérifier documentation . Ensuite, vous pouvez supprimer votre page "galeries" puis ajouter et personnaliser le archive-post_type.php

2. Désactiver l'archive par défaut pour le type de publication

Désactivez l'archive en définissant 'has_archive' => false, puis conservez la page pour l'archive de type publication.

3. Rediriger les demandes d'archive sur votre page

Vous pouvez rediriger de manière permanente la demande d'archive par défaut vers votre page.

function archive_to_custom_archive() {
    if( is_post_type_archive( 'post_slug' ) ) {
        wp_redirect( home_url( '/galleries/' ), 301 );
        exit();
    }
}
add_action( 'template_redirect', 'archive_to_custom_archive' );

Je dirai que la première méthode est bonne!

9
Sumit

Voici le code ci-dessous pour supprimer le lien de la page d’archive avec n’affectant pas en une seule publication. Vous pouvez également créer une page avec un slug d’archive.

function dg_custom_post_type_args( $args, $post_type ) {
if ( $post_type === "custom post type" ) {
    $args['rewrite'] = array(
    'with_front' => false,
    'slug' => 'slug here'
  );
}

return $args;
}
add_filter( 'register_post_type_args', 'dg_custom_post_type_args', 20, 2 );
0
gauravbhai daxini