J'essaye de faire de la réécriture d'URL WordPress ...
Plus précisément, j'ai un type de message personnalisé qui fonctionne actuellement comme ceci:
http://mydomain.com/videos/post-title/
Mais j'aimerais qu'il soit situé à:
http://mydomain.com/videos/author-name/post-title/
Y'a-t-il une quelconque façon de réussir cela?
utiliser Jhon's Custom Post Permaliens plugin devrait être facile avec:
/%post_type%/%author%/%postname%/
Vous pouvez le faire avec votre propre code, sans plugins.
Pour accepter les URL de ce format, il suffit que vous définissiez le slug de réécriture lorsque vous enregistrez le type de message:
add_action( 'init', 'wpse16427_init' );
function wpse16427_init()
{
register_post_type( 'wpse16427', array(
'label' => 'WPSE 16427',
'public' => true,
'rewrite' => array(
'slug' => 'video/%author%',
),
) );
}
Cela générera également des archives d'auteur à video/[authorname]
.
Pour générer les nouvelles URL, vous devez remplacer vous-même la partie %author%
. get_post_permalink()
ne le fait pas pour vous. Donc, filtrez la sortie et remplacez-la vous-même:
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;
}
allez à la section des permaliens sur les paramètres dans le panneau d'administration, définissez un custom structure
comme suit:
/%category%/%author%/%postname%/
NOTE
cela suppose que videos
est une catégorie
Vérifiez ici pour plus d'options.
utilisez la structure suivante si vous avez installé wordpress dans un sous-répertoire (vidéos)
/% auteur% /% postname% /