Twenty Seventeen オサレだし、カスタマイズも進歩してるし、日本語フォントなんかもデフォルトで良い感じなのですが、
トップが画面全体を使って画像や動画を置くような形式(以下、勝手に「表紙」と呼ぶ)なのも、用途によるだろうけどいいとして、
その表紙にあるサイト名をクリックすると、ホームへのリンクなので、(当然)表紙が表示されたままなんですね。スクロールさせるか、右下にある(サイト名と比べると目立たない)「↓」を押せばいいんですが、ちょっと不親切な気がする。
それだけならいいんですが、ページ下にあるナビゲーション使うと、またいちいち表紙が表示されるんですね。そこでうっかりサイト名クリックするとトップに戻ってしまう。
で、Twenty Seventeenの子テーマ作って、home_url
のフィルタで URL の後ろに #content
足したらいいかなと思ってやってみたものの、今度はナビゲーションのリンクの途中に http://.../#content/page/2
みたいに入ってしまって、リンクとして機能しなくなるのでダメ。このフィルタ、こういう使い方想定してないですかね。
で、このナビゲーションはテーマじゃなくて wp-include/general-template.php
で作ってるようなので、そこを見ると paginate_links
というフィルタがあるらしい。なので、それを使う。
結果として、子テーマの functions.php
は、
<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
add_filter('paginate_links', 'mylink', 1, 1);
function mylink( $link='' ) {
return $link . '#content';
}
?>
こんな感じに。
んで、home_url
の方はフィルタでいじるのを諦めて、元のテーマの template-parts/header/site-branding.php
をコピーして home_url('/')
を直接home_url('/#content')
へ変更。
もっとうまいやり方がありそうだけど、Wordpress(の中身)もPHPもマトモに触ったことないのでこの辺で妥協。
デフォルトがマシになってくれることを祈る。