HOME>WEBプログラム覚書>[WordPress] テンプレートのごちゃごちゃが限界にきたのでラッパー書いてみた。

[WordPress] テンプレートのごちゃごちゃが限界にきたのでラッパー書いてみた。

[WordPress]テンプレートがごちゃごちゃしてきたらstr_replaceとかでごまかしてきたけど、限界が来たのでラッパーをかいてみた。

初期設定はcaquu/cqt - GitHubをダウンロードしてfuntions.phpに

functions.php

  1. <?php
  2. require_once('/path/to/CQT/CQT/CaQuuTools.php');
  3. CaQuuTools::init();
  4. ?>

と書いてパスを通します。あとは

PHP

  1. <?php
  2. // postオブジェクト作成
  3. $_posts = CQT_WPLayer::factoryPost(array(998, 834, 995));
  4.  
  5. foreach ($_posts as $_post) {
  6.     // サムネイルがあれば表示
  7.     try {
  8.         echo $_post->thumnail()->toHTML('<img src="{{{ url }}}" alt="{{{ alt }}}" />', array(
  9.                                         'alt' => $_post->title
  10.                                         ));
  11.     } catch (CQT_WPLayer_Exception $e) {
  12.         echo $e->toHTML('{{{ message }}}');
  13.     }
  14.  
  15.     // 投稿へのリンク
  16.     echo $_post->toHTML('<h3><a href="{{{ permalink }}}">{{{ title }}}</a></h3>');
  17.  
  18.     // 投稿した人
  19.     echo '[筆者] ' . $_post->author()->display_name . '<br />';
  20.  
  21.     // 投稿のカテゴリ
  22.     echo '[カテゴリ] ' . $_post->categories()->toHTML('<a href="{{{ link }}}">{{{ name }}}</a>') . '<br />';
  23.  
  24.     // 投稿に付けられたタグ
  25.     echo '[タグ] ' . $_post->tags()->toHTML('<a href="{{{ link }}}">{{{ name }}}</a>');
  26.  
  27.     echo '<hr />';
  28. }
  29.  
  30. ?>

のような感じで書けます。結果はCQT_WPLayer::factoryPost() | デザインの汁な感じになります。

single.phpとかなら

PHP

  1. <?php
  2. while ( have_posts() ) : the_post();
  3.     // postオブジェクト作成
  4.     $_post = CQT_WPLayer::factoryPost($post)->current();
  5. endwhile;
  6. ?>

とするとCQT_WPLayer_Postのメソッドが利用できます。たぶんWordPressに慣れてない人の方がすんなり使えるかも。

投稿日 2012年1月13日 01:37
カテゴリ PHP
タグ WordPress
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1253

コメント

コメントする
Name
Email Address
URL