WordPress フィルターフックでタグクラウドを整列

c202Codex を読んでもなかなかピンと来なかったり、Forum に参加しても目的の答えが見つからなかったり - 開発運用の専門家で無いブログ担当者(WordPress ブログをカスタマイズする人)にとって、カスタマイズの悩みの種は尽きません。小さなことの積み重ねですが、お客様のページをカスタマイズした際の備忘録として記事を書いています。

WordPress でいうフックとは、ユーザーの所望する動作や設定を WordPress 本体(コア・プログラム)に引っ張り込むための「きっかけ」のことです。フックは、もともと「引っ掛ける」という意味です。技術屋さんたち🐰はトリガーと呼んでいます。

様々なきっかけ、例えば、ある関数が呼び出された、または、記事が表示されたときなどに、特定の動作や設定を行うこと(自分の用意したプログラム(🐰はコードと呼びます)を実行すること)をフィルターフックといいます。今のところ、アクションフックも同じようなものと思ってください。詳しくは、WordPress API を参照してください。

フィルターフックを使うためには、通常、functions.php 内やそこから呼び出すファイル内に add_filter() という関数を記述します。その際、ftp で直接アクセスしてコア・プログラム自身を変更してしまうのは止めておきましょう。

add_filter( ①対象フィルターの名前, ②フック時に実行する独自の関数名, [省略] );

タグクラウドのパラメータを変更したい場合は、例えばこんな感じです。set_tagcloud11 は、パラメータ変更のための任意の関数名です。既存のプログラムやモジュールとの関数名の衝突に気をつけて、少し変わった名前にするのがコツです。弊社では、関数名の末尾に管理番号をつけています。

widget_tag_cloud_args は、対象とするフィルターの名前です。wp_tag_cloud() という関数に作用します。

add_filter( ‘widget_tag_cloud_args’, ‘set_tagcloud11’ );

参考:上記と合わせて、分かりやすいように②の関数の定義も functions.php 内に一緒に書いています。(下記のコードをダブルクリックすると簡単に選択してコピーできます)

// タグクラウドのパラメータ変更
function set_tagcloud11($args) {
  $myargs = array(
    'smallest' => 10,   // 最小文字サイズ
    'largest' => 20,    // 最大文字サイズ
    'number' => 50,     // 表示数
    'order' => 'DESC',  // 降順に表示
    'exclude' => 183, 194, 216, 310, 315  // 除外するタグ
    'orderby' => 'count',  // 記事を多く書いている順に表示
    'echo' => false,    // WordPress 4.4 以降は必要
  );
  return $myargs; 
}
add_filter( 'widget_tag_cloud_args', 'set_tagcloud11' );

このようなやり方により、WordPress のデフォルト(元々の)表示と違う独自の表示にカスタマイズできます。また、WordPress 本体のプログラムを触る危険を冒す必要がありません。非常に便利な機能なので、この構文を頭に入れておいてくださいね。

参考URL:

 

明鏡塾 2012秋季専門講座(情報通信技術)の選択科目

 

明鏡塾からのお知らせ(平成24年9月7日)を掲載します。

 

平成24年9月12日(水)より開講予定の明鏡塾2012秋季専門講座(情報通信技術)の選択科目についてお知らせします。

 

PHP5

科目番号  EX01A (2012 Autumn)

科目分類  一般プログラミング言語(所管:システム開発グループ)

科目名   PHP5概要と周辺の話題

レベル   T5(L1)

対象分野  Web application framework I/II

参考図書  講義内で指示します。

仕様詳細  次の表をご参照ください。

 

EX01A   Category Subject Version Reference

x03-01

O

Web Application Framework

CakePHP

2.2.x

Ruby on Rails  MVC Ajax

x03-05

O

Template Engine

Smarty

3.x

 

x03

O

Common Language

PHP

5.4.x

MySQL5

x05-01

 

Web Application Framework

ASP.NET MVC

4.0

*

x06

 

Common Language

Java

SE7

*

+  Referential framework and language * x05-01/x06 can only be described for understanding PHP and its environment.

 

 

 WordPress 3.4.x

科目番号  EX02A (2012 Autumn)

科目分類  オープンソース ブログソフトウェア(所管:システム運用グループ)

科目名   WordPress 3.4.1の概要と利用方法

レベル   T5(L1)

対象分野  (i)  Digital Marketing by blogs and homepages with Facebook timeline

      (ii)  Simple Web and Web Application I/II related CMS

参考図書  WordPress デザインワークブック ISBN 978-4-88166-928-0

      (初回に講師から図書の説明があります。必要な方のみ購入下さい。)

      http://codex.wordpress.org/Getting_Started_with_WordPress

仕様詳細  次の表をご参照ください。

 

EX02A   Category Subject Version Reference

P1WP

O

CMS

WordPress

3.4.1

 

P1WP2

O

CMS Add-on

WP Plugin

 

X10

P2WP3

O

CMS Development

WP Connection

 

PHP5 MySQL5

P2WP4

O

CMS Operation

WP Dashboard

 

Multi-Site System

+  Instruction: it is required that your self-website is ready for this lecture.
+  And your own content for the website can be prepared.

 

明鏡塾 教務グループ

情報通信システム事業部 システム開発グループ