現在新しいテーマを作るにあたり、wordpressのテーマを開発するためのライブラリを制作しています。

今回はそのライブラリの紹介と途中経過について説明します。

wordpressテーマ開発用ライブラリ「wing」

ライブラリというよりもwordpressの関数ラッパーと言ったほうが正確です。

一般的なindex.phpを書くときは以下のようにしますよね?

<?php get_header()?>
<h1><?php bloginfo('name')?></h1>
<h2><?php bloginfo('description'); ?></h2>
<?php if ( have_posts() ) : ?>
  <?php while( have_posts() ) : the_post(); ?>
    <h2><?php the_title(); ?></h2>
    <p><?php the_content(); ?></p>
  <?php endwhile;?>
<?php else : ?>
  記事がありません。
<?php endif; ?>
<?php get_footer()?>

これをwingで書くと以下のようになります。

<?php Parts::header()?>
<h1><?=BlogInfo::name()?></h1>
<h2><?=BlogInfo::description()?></h2>
<?php Posts::each(function(Post $post){ ?>
    <h1><?=$post->title?></h1>
    <p>
        <?=$post->content?>
    </p>
<?php },'投稿がありません')?>
<?php Parts::footer()?>

かなりスッキリしましたね。

これがwingです。

機能

現在実装している機能は以下のとおりです。

  1. POM(Post Object Model) – 投稿オブジェクトモデル
  2. CAW(Customizer API Wrapper) – カスタマイザーAPIラッパー

製作予定の機能は以下のとおりです。

  1. TOM(Tag Object Model) – タグオブジェクトモデル
  2. COM(Category Object Model) – カテゴリーオブジェクトモデル
  3. WOM(Widget Object Model) – ウィジェットオブジェクトモデル
  4. BlogInfo class – bloginfo()の簡易アクセス版
  5. bird – wingを最大限活かすためのコマンドラインプログラム

最後に

完成予定日は2017/4/1を目指しています。