web-dev-qa-db-ja.com

Next/previous_post_linkに#anchorを追加

Codex に従ってprevious_post_linkを変更しようとしましたが、理解できません。 next_post_linkも同じです。

単純なリンクが欲しいのですが、#anchorタグが追加されています。

私が得るのは変更されたLinkNameだけです - URLはそのまま残ります。

私はJavascriptでそれをすることができました、しかし、これは私がそれをしたい方法ではありません - 私はWordPressツールでそれをする方法を知りたいです。

どんなヒントでも素晴らしいでしょう。

1
ad2003

これはトリックをするようです:

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

すなわち、前/次のパーマリンクに#anchorを追加する。

ps: WP_Rewrite::using_permalink() チェックを削除しました。実際には必要ないので、example.tld?p=123#anchorも同様に機能するはずです。

2
birgire