BLOG

archive.phpが認識されなかった

2019/12/02 [Mon] WEB

時々書いているWEBの備忘録、自分用に役立っているので困ったことがあった時にはできるだけメモっておくことにします。
大体毎回同じところでつまづくという。成長しろよ自分…。

さて、今回はWordPressのテンプレートで「archive.php」を作ってアップしているにも関わらず、全く認識されず「index.php」が表示されて「何でやぁぁ〜!」としばらく格闘してしまいました。

オチはとっても単純。
「functions.phpにアーカイブページを作成する、という記述をしていなかった」
だけでした。

以下、昔買ったWordPressの入門本に載っていたのをそのまま引っ張ってきたやつだと思いますが転載。

//投稿アーカイブページの作成
function post_has_archive( $args, $post_type ) {
   if ( ‘post’ == $post_type ) {
     $args[‘rewrite’] = true;
     $args[‘has_archive’] = ‘blog’; //スラッグ名
     }
     return $args;
}
add_filter( ‘register_post_type_args’, ‘post_has_archive’, 10, 2 );

functions.phpはいつも大体使い回していますが、不要なものを削除していた時に間違ってコレも一緒に消してしまったようです。

ていうか普通の投稿(カスタム投稿タイプでない)ぐらい、わざわざfunctions.phpで宣言しなくても、アーカイブ使えるようにしといて欲しい…。
まぁ「設定→表示設定」で固定ページを指定する方法もありますが、これはこれで何かと手間が増えて面倒だし…(固定ページを無駄に増やしたくないので)

パーマリンク設定にも注意

ちなみに上記に気付いてfunctions.phpを修正した後も、archive.phpが認識されませんでした。

こちらは何となくパッと気付いてすぐに直したのですが、パーマリンク設定カスタム構造に上記と同じスラッグ名を含めていたのを削除したら、ようやくarchive.phpがアーカイブページとして認識されました。

blog/%year%-%monthnum%-%day%-%hour%%minute%%second%
 ↓
「blog」を削除
/%year%-%monthnum%-%day%-%hour%%minute%%second%

ついでにcurrent設定の話

件のサイトでは投稿ページをブログとして使用しています。
グローバルメニューはWordPressの「外観→メニュー」で作ってアーカイブページを「カスタムリンク」で「ブログ」と記述してメニューに追加していますが、これだと当然アーカイブページ以下(投稿ページ、カテゴリーアーカイブ等)のページでは、メニューにcurrentクラスが付与されません。

これってどうやるんやったっけ〜?と過去の事例をチェックするもすぐに見付けられず。

調べているとjQueryでURLを取得して云々…といった方法も出てきますが、せっかくWordPressの標準メニュー機能を使っているのだし、あまり無駄なことはしたくない。

少し考えて、ふと「single.phpもcategory.phpもブログのページでしか使わない」ことに気付き、single.phpとcategory.phpのページのcontainerブロックにcssを付与することにしました。

<div class=”container single”>
   :
  <ul class=”global”>
   <li>トップページ</li>
      :
    <li class=”blog”>ブログ</li>
      ↑メニュー設定のオプションでcssクラス付与
  </ul>

//cssを以下のように記述
.global li.current-menu-item a,
.single .global li.blog a {
   currentの設定
}

こうすれば、single.phpのテンプレートが読み込まれている時だけcurrent設定のcssが適用されることになります。

関連記事

  • 2020/09/02 [Wed] WEB お知らせ

    .tkドメインの話

    最近甲虫のサイトをオープンしたのを期に、こちら本体の方に、以前他のドメインで試験 […]

  • 2020/02/10 [Mon] WEB

    遅れ馳せながらSassが便利すぎた

    最近、ご縁があって昔所属していたWEB制作会社とまた一緒にお仕事させていただける […]

  • 2019/10/02 [Wed] WEB

    投稿ページを分割

    相変わらず特に宣伝活動もせず、ほとんどアクセスのないサイトを気ままに更新している […]

  • 2019/09/08 [Sun] WEB

    SEO対策

    私がHTMLを勉強し始めたのは今から約20年ほど前、まだパソコンの普及率も今ほど […]

  • 2019/09/05 [Thu] WEB 教育

    プログラミング教育とは

    以前にチラッと触れたのですが、来年2020年から施行される「新学習指導要領」の中 […]

  • 2019/09/03 [Tue] WEB

    メールフォームでハマった話

    いろいろハマり過ぎですね…。まぁそれがWEBってもんです(?)。 さて今度もまた […]

  • 2019/09/01 [Sun] WEB

    WP移転でハマった話

    前回に続きWEBネタです。というかこれを書くための前置きとして前の記事を書きまし […]

  • 2019/08/31 [Sat] WEB

    WEB制作を再開しました

    ここ最近の仕事はチラシやパンフレットがメインですが、私、元々はWEBデザイナーで […]