2013/2/14

WordPressのパーツのモジュール化のアイデア

まだ実装してないんですけど、最近閃いたのがあったので。例えばトップページのコンテンツとかクライアントが変更したいとかあるとするじゃないですか。という時にカスタム投稿タイプでモジュール作っちゃえばいいなあと思いました。

function create_post_type() {
    global $wp_rewrite;
    register_post_type( 'send_workshop',
        array(
            'label' => __( 'モジュール' ),
            'singular_name' => __( 'モジュール' ),
            'public' => true,
            'show_ui' => true,
            'capability_type' => 'post',
            'hierarchical' => true,
            'rewrite' => array( 'slug' => 'module' ),
            'has_archive' => true,
            'supports' => array(
                'title',
                'editor',
                'excerpt',
                'custom-fields',
                'page-attributes',
                'revision',
                'thumbnail'
            ),
        )
    );

で、これループでいちいち呼び出すの面倒くさいので関数作っちゃえば良いですよね。

function load_module( $posttype, $name) {
  $parm = array(
  'post_type'=>$posttype,
  'name'=>$name
  );
  query_posts($parm);
  if (have_posts()) : while (have_posts()) : the_post();
    echo the_content();
  endwhile;
  endif;
  wp_reset_query();
}

画像の登録とかやるなら、echo the_content();のところカスタマイズしなければですが、でも、load_module_topslide(‘module’, ‘slide1’);みたいにページテンプレートの方で処理できると、結構便利じゃないかなあと思いますし、ソースコードも綺麗になる気がしますし、カスタムフィールドテンプレートなんかと連動させれば、メンテナンサビリティも確保できそう。

これ色々応用効きそうな気がしてます。

ひとり仕事: フリーランスという働き方
(2012-10-5)
売り上げランキング: 14,705
100円
WordPressデザインレシピ集
狩野 祐東
技術評論社
売り上げランキング: 197,569
WordPress 高速化&スマート運用必携ガイド
こもりまさあき 岡本渉
エムディエヌコーポレーション
売り上げランキング: 435,263