it-swarm.com.de

benutzerdefinierte URL einer Archivseite vom Typ "Beitrag", die auf "Seitenpermalink" verweist

Ich wünschte, meine "Archivseite für benutzerdefinierte Posts" würde auf "Seite" verweisen.

Die Situationen sind wie folgt:

Ich habe Page in Wordpress mit Permalink http://myurl.com/galleries. Diese Seite zeigt eine Liste der Beiträge mit dem benutzerdefinierten Beitragstyp = vmgallery. Ich habe benutzerdefinierte Logik für diese Seite, die gut funktioniert.

Aus einer anderen Sicht funktioniert diese Seite wie "Archivseite für benutzerdefinierten Beitragstyp", da alle Beiträge für den angegebenen benutzerdefinierten Beitragstyp vmgallery angezeigt werden. Derzeit, wenn Benutzer zu http://myurl.com/vmgallery/ wordpress geht, wird die Archivseite (archive.php) geladen, stattdessen wünsche ich mir, dass die Seite http://myurl.com/galleries geladen wird.

Wie kann man das erreichen?

2
renathy

Sie haben hier mehrere Möglichkeiten.

1. Posttyp-Archiv-Slug bei Posttyp-Registrierung definieren

Durch Setzen von 'has_archive' => 'galleries' können Sie einen benutzerdefinierten Archivierungs-Slug für Posts definieren. Überprüfen Sie Dokumentation . Dann können Sie Ihre Seite "Galerien" löschen und dann den archive-post_type.php hinzufügen und anpassen.

2. Standardarchiv für Beitragstyp deaktivieren

Deaktivieren Sie das Archiv, indem Sie 'has_archive' => false einstellen, und behalten Sie dann die Seite für das Archiv des Beitragstyps bei.

3. Archivierungsanfragen auf Ihre Seite umleiten

Sie können die Standardarchivierungsanforderung dauerhaft auf Ihre Seite umleiten.

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' );

Ich werde sagen, die erste Methode ist gut!

9
Sumit

Hier ist der folgende Code zum Entfernen des Archivseiten-Links, der sich nicht auf die URL eines einzelnen Posts auswirkt, und Sie können eine Seite mit dem Archiv-Slug erstellen.

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