ようこそのお運びで、厚く御礼申し上げます。
17日目です。今回は「クラス定義」について少し勉強してみたいと思います。
「記事に最新記事3件を挿入(3日目)」をクラス定義してみる。
以前作った「記事に「最新の記事」のリンクを3件入れる」のソースをクラス定義してみます。
理由としては、今はまだthe_contentなどの簡単なフックだけですが、これからソースが複雑になっていくとわかりやすいコーディング設計が必要になりそうだからです。
あと変数がダブったりしてエラーが発生するのを防ぎたい。
簡単なうちにクラス定義についても少し慣れておこうと思います。
まずは、functions.phpに書いてみます。
以前のコードはこれでした。
これを、クラス定義して、まずはfunctions.phpに以下のコードを書きました。
//オブジェクトを作成する $paka3obj = new Paka3_NewPost; //呼び出し add_filter('the_content',array($paka3obj,'paka3newPosts')); //クラス定義 class Paka3_NewPost { public $args; //コンストラクタ function __construct() { $this->args = array( 'posts_per_page'=>3, 'orderby' =>'post_date', //投稿日 'order' =>'DESC', ); } //新着リストメソッド function paka3newPosts($contentData){ $posts =get_posts( $this->args ); $list="<b>最新の記事</b><ol class='delStr_ul'>"; foreach($posts as $post){ //更新日のフォーマット変更 $postDate = mysql2date('Y年m月d日', $post->post_date); $list.="<li class='mylist_li'><a href='".get_permalink($post->ID)."' title='.$post->post_title.'>".$post->post_title."(更新日:".$postDate.")</a></li>"; } $list.="</ol>"; return $list.$contentData; } }
ポイントはどこ?
ほぼ、「phpの使い方」にはなってしまいますが、簡単にまとめます。
- クラスのメソッドを呼び出すには、まずオブジェクトを生成します。
$paka3obj = new Paka3_NewPost;
- add_filterから、定義したクラスのメソッド(関数)を呼び出す。 クラスを使わない場合は
add_filter('the_content','paka3_newPosts');
こんな感じで呼び出していましたが、クラスのメソッドを呼び出す場合は、生成したオブジェクトを指定します。
add_filter('the_content',array($paka3obj,'paka3newPosts'));
- クラスの定義「Paka3_NewPost」
- コンストラクタには、初期値を設定しています。
function __construct() { //初期値 }
- 関数を設定して、命令を記入しています。
function paka3_newPosts($contentData){ //命令 }
- 今回は、内容についてはちょっと適当かもしれません。 クラスを使うという雰囲気がわかればいいかな。
コードをプラグイン用のファイルにします
それではfunctions.phpに書いたコードを消して、 「Paka3_NewPost.php」というファイルを作成し、以下のコードを記入します。
このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。
今回のまとめ
今回はクラスを定義してみました。最初、プラグインでクラスを使えるってことを知らなかったのですが、調べてみると意外と簡単に使えることを発見。しばらくはクラスを使うのを控えますが、使える命令等は積極的に使っていこうかなーっと思ったりもしています。まだわかりませんが・・・お後がよろしいようで。