WordPress

「記事に最新記事3件を挿入」をクラス定義してみる:【17日目】WordPress1日1プラグイン

更新日:

ようこそのお運びで、厚く御礼申し上げます。
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」ディレクトリに入れ、管理画面で有効にして完了です。

今回のまとめ

今回はクラスを定義してみました。最初、プラグインでクラスを使えるってことを知らなかったのですが、調べてみると意外と簡単に使えることを発見。しばらくはクラスを使うのを控えますが、使える命令等は積極的に使っていこうかなーっと思ったりもしています。まだわかりませんが・・・お後がよろしいようで。

-WordPress
-, ,

Copyright© アルパカ@ラボ , 2024 All Rights Reserved Powered by AFFINGER5.