TL; DR
Weiß jemand, wie ich einzelne Seiten und Archive für benutzerdefinierte Beitragstypen deaktivieren kann, während der Vorschaumodus beibehalten wird?
Ich suche nach einer Möglichkeit, die Einzel- und Archivierungsseiten für einen benutzerdefinierten Beitragstyp zu deaktivieren, da die Beiträge nur im Archiv einer benutzerdefinierten Taxonomie angezeigt werden, die den Beiträgen zugewiesen ist. Dies kann normalerweise leicht erreicht werden, indem beim Erstellen des CPT 'publicly_queryable' => false
festgelegt wird.
Hier ist die Wendung: Ich möchte weiterhin den Vorschaumodus für die Beiträge verwenden können, damit ich meine Änderungen am Beitrag überprüfen kann, bevor ich sie speichere. Da durch das Setzen von 'publicly_queryable' => false
auch die Vorschauseite deaktiviert wird, kann ich es nicht schaffen, einzelne Seiten als doppelten Inhalt zu haben oder Entwürfe oder Änderungen von Beiträgen nicht zu sehen.
Basierend auf der Antwort von Cesar (danke!) Verwende ich die folgende Lösung, die auch zeigt, wie der Vorschaumodus beibehalten und wie oben erläutert zum Archiv der Taxonomie umgeleitet wird.
add_action('template_redirect', 'post_redirect', 99);
function post_redirect()
{
global $post;
if ((is_post_type_archive('post_type') || is_singular('post_type')) && !is_preview())
{
$post_terms = wp_get_post_terms($post->ID, 'taxonomy');
if($post_term = $post_terms[0])
{
wp_redirect(get_term_link($post_term->term_id) . '#' . $post->post_name, 301);
die();
}
}
}
Ich bin immer noch an einer Lösung ohne Weiterleitungen interessiert, falls das möglich ist.
Sie können umleiten, wenn jemand versucht, die archive
oder die single
Ihres benutzerdefinierten Beitragstyps anzuzeigen, leiten Sie sie einfach auf eine andere Seite um. Fügen Sie dies einfach in Ihre Datei functions.php ein.
add_action( 'template_redirect', 'theme_redirects', 99 );
function theme_redirects() {
if ( is_post_type_archive( 'post_type_slug' ) || is_singular( 'post_type_slug' ) ) {
wp_redirect( 'my_url' );
die();
}
}
Siehe Referenzen: