設定で、固定ページにした場合のフロントページはget_bloginfo('url')などで取得できると思うのですが、投稿ページに指定したURLはどうやって取得すれば良いでしょうか?
設定で、固定ページにした場合のフロントページはget_bloginfo('url')などで取得できると思うのですが、投稿ページに指定したURLはどうやって取得すれば良いでしょうか?
shokun0803さん、こんにちは。
投稿ページで指定したページのIDが
get_option( 'page_for_posts' );
で取得できます。このIDを引数にしてget_permalinkを使えば、投稿ページに指定したURLを取得できるのですが、フロントページの表示の選択の如何に関わらず設定値が返ってきますし、投稿ページの選択がなされていない状態では空やfalseが返ってきて、そのままget_permalinkにかけると、表示中のページのURLが返ってきてしまったりします。
なので、
if ( get_option( 'show_on_front' ) == 'page' && $page_for_posts = get_option( 'page_for_posts' ) ) {
$link = get_permalink( $page_for_posts );
}
と分岐処理を加えてあげれば、表示状態に則したリンクを得ることが出来ます。
ありがとうござます!検証ができました。
機能として固定ページの設定があるわけですから、関数で用意されているものだと思っていました。見落としているのかそもそも関数がないのかの判断もできず、困っていた所です。
自作テーマで使うだけですのでイレギュラーは考えていませんでしたが、細かい部分まで考えていただいてとても助かりました。
ログイン しなければ投稿できません。