Weiß jemand, wie man die URL-Struktur nur für die einzelne Beitragsseite ändert?
Wenn ich zu einer Post-Seite gehe, sollte die URL so aussehen: example.com/xxx/my-post. Alle anderen URLs (mit Ausnahme der einzelnen Postseiten) sollten kein "xxx" in der URL enthalten.
Das Anpassen der Permalink-Einstellungen würde auch xxx vor Taxonomien und Kategorien hinzufügen, sodass das für das, was ich benötige, nicht funktioniert.
Im Wesentlichen möchte ich, dass alle "post" - und "events" -URLs ein zusätzliches "xxx" -Segment in der Struktur enthalten.
Die Lösung besteht darin, den Standardbeitragstyp direkt nach Wordpress neu zu registrieren und einen Überschreibungsfehler hinzuzufügen. Außerdem muss der Parameter _builtin auf false gesetzt werden.
add_action( 'init', 'my_new_default_post_type', 1 );
function my_new_default_post_type() {
register_post_type( 'post', array(
'labels' => array(
'name_admin_bar' => _x( 'Post', 'add new on admin bar' ),
),
'public' => true,
'_builtin' => false,
'_edit_link' => 'post.php?post=%d',
'capability_type' => 'post',
'map_meta_cap' => true,
'hierarchical' => false,
'rewrite' => array( 'slug' => 'post' ),
'query_var' => false,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
) );
}
Eine andere Methode ohne die möglichen Nebenwirkungen der Registrierung eines neuen Post-Typs besteht darin, die Umschreiberegeln zu ändern, um die Permalink-Front zu entfernen.
function wpa37911_permastructs(){
global $wp_rewrite;
$wp_rewrite->extra_permastructs['category']['struct'] = '/category/%category%';
$wp_rewrite->extra_permastructs['post_tag']['struct'] = '/tag/%post_tag%';
}
add_action( 'init', 'wpa37911_permastructs' );