Ich versuche, eine WordPress-URL umzuschreiben ...
Insbesondere habe ich einen benutzerdefinierten Beitragstyp, der derzeit folgendermaßen funktioniert:
http://mydomain.com/videos/post-title/
Ich hätte es aber gerne unter:
http://mydomain.com/videos/author-name/post-title/
Gibt es eine Möglichkeit, dies zu erreichen?
mit Jhons Custom Post Permalinks Plugin sollte es einfach sein mit:
/%post_type%/%author%/%postname%/
Sie können dies mit Ihrem eigenen Code ohne Plugins tun.
Um URLs dieses Formats zu akzeptieren, ist es ausreichend, wenn Sie bei der Registrierung des Beitragstyps den Überschreibungs-Slug festlegen:
add_action( 'init', 'wpse16427_init' );
function wpse16427_init()
{
register_post_type( 'wpse16427', array(
'label' => 'WPSE 16427',
'public' => true,
'rewrite' => array(
'slug' => 'video/%author%',
),
) );
}
Dadurch werden auch Autorenarchive unter video/[authorname]
erstellt.
Um die neuen URLs zu generieren, müssen Sie den Teil %author%
selbst ersetzen. get_post_permalink()
übernimmt dies nicht für Sie. Filtern Sie also die Ausgabe und ersetzen Sie sie selbst:
add_filter( 'post_type_link', 'wpse16427_post_type_link', 10, 4 );
function wpse16427_post_type_link( $post_link, $post, $leavename, $sample )
{
if ( 'wpse16427' == $post->post_type ) {
$authordata = get_userdata( $post->post_author );
$author = $authordata->user_nicename;
$post_link = str_replace( '%author%', $author, $post_link );
}
return $post_link;
}
gehe in den Permalinks-Bereich über die Einstellungen im Admin-Bereich und setze einen custom structure
wie folgt:
/%category%/%author%/%postname%/
NOTE
dies setzt voraus, dass videos
eine Kategorie ist
Überprüfen Sie hier für weitere Optionen.
verwenden Sie die folgende Struktur, wenn Sie WordPress in einem Unterverzeichnis (Videos) installiert haben
/% author% /% postname% /