WEBデザイナーでWordPrssのテーマ作成スキルは必須になってきた気がします。とはいえPHPがガリガリ書けないとWordPressで思わぬエラーをだしてしまうことも多々有ります。
よくあるページャーで2ページ目で404エラーが出るというものです。悪名高きWP_Queryをどうこう以前にアーカイブやカテゴリー一覧のURLの持たせ方でページャーが動くかないということがあります。
ページ送りはプラグインを使用
よく使うのが、WP-PageNaviとWP SiteManagerです。WP Sitemanagerはカテゴリーの階層なども制御できますので、カスタム投稿を使う際にはこっちを、ただのページャーが必要なだけのサイトだとWP-PageNaiを使用しています。
ページ送りのコード
WP-PageNaviのページ送りコード
//ループ要素
WP SiteManager
//ループ要素
こちらを記事一覧を表示するindex.php、archive.php, category.phpに記述することでページ送りが表示されます。
表示する記事数は管理画面の設定で決める
表示する記事数はログインして設定の表示設定、そのなかの表示するページ数で決定します。
カテゴリーやタグ一覧ページに入るURLを間違えるとページ送りが機能しない
例えば写真のカテゴリーに「photo」というスラッグをつけるとします。
写真一覧にページ遷移させるURLに下記のような書き方をしてしまうと、1ページ目は表示されますが、ページ送りで2ページ目に行った際に404エラーが帰ってきます。
間違ったリンクの貼り方
写真
カテゴリー一覧の1ページ目が表示されてしまうので静的HTMLからWordPressに以降したばかりの人だと書いてしまいそうなコードです。
正しいリンクの貼り方
写真
「xxx」の部分にはカテゴリーのIDが入ります。こうすることでどのカテゴリーかを判断することができるのでページ送りが正常に機能します。
カテゴリーIDの探し方
ループの中にPHPを書いて数値を取得してもよいですが、ログイン>投稿>カテゴリーでカテゴリー名にオンマウスして下に出てくる数値を拾うのが一番はやいです。
これでページ送りエラーのでない記事一覧へ遷移するグロナビなどが作れます。
記事一覧の中でカテゴリー名とリンクを取得する方法
ここまでは自分でURLを打ち込んできましたが、記事一覧のループ要素の中にカテゴリー一覧へのリンクを表示させたい場合もあります。
この場合は自動でカテゴリー名やリンクを取得しないといけません。このブログのように、カテゴリーのスラッグによって色を変えられるCSSを当てられるコードはこのようになります。
slug; //カテゴリーのスラッグ取得 $linkid = $cat[0]->term_id; //カテゴリーのIDを取得 $catname = $cat[0]->cat_name; //カテゴリー名を取得 $url = site_url(); //ブログのURLを取得 $catlink = "$catname"; echo $catlink; ?>
こうすることで”category_[スラッグ]”のクラスがついたリンクを取得できます。
WordPressを構築する際によく使うコード+陥りやすいエラーなので覚えておくといざというときに役に立ちます。
スポンサーリンク
コメントを残す