web-dev-qa-db-fra.com

Ajouter #anchor à next/previous_post_link

J'ai essayé de comprendre comment changer le previous_post_link en suivant le Codex mais je n'arrive pas à le comprendre. Idem pour le next_post_link.

Je veux juste avoir un lien simple mais avec une balise #anchor ajoutée.

Tout ce que je reçois est un LinkName modifié - l'URL reste intacte.

Je pourrais le faire avec javascript, mais ce n'est pas ce que je veux faire - j'aimerais savoir comment le faire avec des outils WordPress.

Toute allusion serait géniale.

1
ad2003

Cela semble faire l'affaire:

add_filter( 'next_post_link',     'wpse_post_link', 10, 4 );
add_filter( 'previous_post_link', 'wpse_post_link', 10, 4 );

function wpse_post_link( $output, $format, $link, $post )
{
    if( $url = get_permalink( $post ) ) 
        $output = str_replace( $url, $url . '#anchor', $output );

    return $output;
}

c'est-à-dire ajouter le #anchor aux permaliens précédents/suivants.

ps: J'ai enlevé la vérification WP_Rewrite::using_permalink() , puisque nous n'en avons pas besoin, example.tld?p=123#anchor devrait également fonctionner.

2
birgire