web-dev-qa-db-fra.com

Ajout de% author% dans la structure d’URL de type publication personnalisée?

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?

3
Thomas

utiliser Jhon's Custom Post Permaliens plugin devrait être facile avec:

/%post_type%/%author%/%postname%/
5
Bainternet

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;
}
7
Jan Fabry

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.

0
Mild Fuzz

utilisez la structure suivante si vous avez installé wordpress dans un sous-répertoire (vidéos)

/% auteur% /% postname% /

0
Giri