カテゴリーのテーブルをつくる

はじめに

どうも。本ブログは不労所得雑記ということで、働きたくない紳士の皆さまの役に立つ情報をお届けできたらと思っています。それは良いのですが、今回は wordpress でカテゴリーのテーブルをつくろうと思います。

↓ こんなやつ ↓

要するに、カテゴリーを列挙するテーブルです。細かいデザインや工夫は色々あるでしょうが、今回はシンプルなものをつくります。個人的にヘタにプラグインを探してごちゃごちゃになるより、簡単なものはサッとコードを書けたら便利かなと思います。

コードと解説

では、まずコードを貼り、それから説明します。😊

コード

function getCategoriesTable($args,$n=10){
  $categories=get_categories($args);
  $categories=array_slice($categories,0,$n);
  $res="<table class='get-categories-table'><tbody><tr><td>";
  foreach($categories as $category){
    $link=get_category_link($category->term_id)."?orderby=rand";
    $res.="<a href=\"${link}\"><div\">{$category->name}</div></a>"." ";
  }
  $res.="</td></tr></tbody></table>";
  return $res;
}

シンプルです。😁

引数 意味
$args get_categories の引数
$n カテゴリーの項目数

流れ

まず、ざっくりと流れを説明すると

  • get_categories でカテゴリーのデータを取得
  •  array_slice で $n コのデータに絞る
  • リンクを付けたカテゴリー名のタグをとる
  • タグをテーブルの html にして返す

という感じです。

この関数は functions.php に貼ります。以下に PHP コードをプラグインから呼び出すのを説明しますが、僕の場合、関数は functions.php に貼らないとエラーが出ます。多分、そちらに貼った方が良いです。functions.php は「外観 -> テーマファイルエディタ -> テーマのための関数」から編集できます。

試す

ウィジェットでPHPコードを動かす

では早速試しましょう。しかしエディタに直接 PHP コードを書いても動作しません。やり方は色々ありますが、今回は Insert PHP Code Snippet というプラグインを使います。これは PHPコードを登録し、それを呼び出すショートコードを作成してくれるプラグインです。つまり、

  • Insert PHP Code Snippet で PHP コードのショートコードをつくる
  • それをウィジェットのテキストに貼る

という流れです。導入は以下をご参照ください。

参考サイト : https://chiri-tsumo.com/insert-php-code-snippet/

コードを貼る

では 左に出現した XYZ PHP Code からAdd new PHP Code Snippet をクリックします。

そして以下のコードを貼ります。

<?
$args=array();
$html=getCategoriesTable($args);
echo $html;
?>

$args で取得するカテゴリーや並び順を指定できます。今回はシンプルにやります。

そしてUpdate を押し保存します。 そして back で戻ります。すると Snippet Short Code の欄にショートコードが発行されてると思います。

テキストにショートコードを貼る

いよいよ試しましょう。今回はテストなんで新規投稿で試します。先ほどの新規投稿に先ほどのショートコードを貼りプレビューください。上手くいってますかね。

本ブログで試したところ、こんな感じでした。参考にならずすみません。😏

少し応用

シンプルなものを作りました。あとは満足するまでデザインを整え応用するだけです。僕はあまり体力がないので、シンプルな応用だけ紹介します。あとは google 先生とご自身の想像力で良きサイト道を歩んでください。(笑)

ランダムに

getCategories 内 4 行目の

$categories=array_slice($categories,0,$n);

の前に

$categories=shuffle(categories);

を挿れるとランダムになります。

親カテゴリーを指定

親カテゴリーのIDを取得し、snippet code 内の $args に条件を加えます。

//$parent_category : 親カテゴリー
$parent_data=get_category_by_slug($parent_category);
if($parent_data)
  $args["child_of"]=$parent_data->term_id;

テーブルに載せるカテゴリーを選ぶ

「親カテゴリーを指定」と組み合わせます。

  • X -> 載せたいカテゴリー   (Xは親カテゴリー)
  • Xを親カテゴリーとしてカテゴリーを取得

とします。親カテゴリーの登録法は色々ありますが、一応記事を書いたので良ければ参考にどうぞ。最善かは知りません。😯

404 Not Found

その他

基本的に get_categories を使えば、色々指定できます。どうぞお勉強ください。(笑)

おわりに

今回は wordpress のお勉強でした。本当は有料テーマやプラグインを使えば良いのかもしれませんが、勉強ついでに作りました。人気のプラグインは大多数にウケねばならぬですが、僕の個人的な需要に答えてくれるとは限りません。やはり簡単なものは自分で作れた方が良いかと思ってます。無駄な勉強かもしれません。(笑)

お疲れさまでした!😂

コメント

タイトルとURLをコピーしました