CatpowはWordPressでサイト固有のオリジナルCMSのテーマを制作するためのプラグインです。
カスタム投稿・カスタムフィールド・カスタムカテゴリ・カスタムロール等の設定情報をテーマが設定ファイルとして持つことで、サイト固有のデザインと機能が一体になったテーマの開発を効率化します。
このページから最新のリリースzipファイルをダウンロードしてWordPressの管理画面からプラグインとしてインストールしてください
テーマ内のconfig/system_config.php
に以下のように配列でカスタム投稿・カスタムフィールド・カスタムカテゴリの構成を記述することで簡単にそれらを設定できます
$post_types=[
'my_post_type'=>[
'label'=>'カスタムポスト',
'taxonomies'=>[
'my_taxonomy'=>['label'=>'カスタム分類']
],
'meta'=>[
'my_custom_field'=>['type'=>'textarea','label'=>'カスタムフィールド'],
]
]
];
SCSSのコンパイルにコマンドを実行する必要はありません、管理者としてログインしている時にページを閲覧した時、そのページに使われているcssに対応するscssファイルに更新があればそのscssはコンパイルされ、cssは更新されます。
カスタムブロックの開発するのであれば、CatpowにはJSXと翻訳JSONファイルのコンパイラが備えられています。プラグイン内のjsx_compiler
ディレクトでnpm run watch
を実行することでcatpow
から始まる名前を持つテーマとプラグインの中にあるJSXファイルとブロックの翻訳ファイルの更新を監視してコンパイルします。JSXはWordPressが内蔵するReactを利用するものとしてコンパイルされます。
Catpowの多くの機能がテーマかプラグインに特定のファイルやクラスが存在することをトリガーにしています。カスタムブロック、カスタムフィールドのタイプ、APIのエンドポイントなどの追加・拡張に登録の処理を行う必要はありません。テーマ内に所定の命名規則でファイル・クラスを作成するだけこれらを拡張することができます。
Catpowには50以上ブロックが実装されていますがこの中から有効化されるのはテーマにblocks/[ブロック名]
のディレクトリが存在するものだけであり、このディレクトリに置かれたfront_style.css
がページ内でそのブロックが使われている時だけ読み込まれるようになります。また、ほとんどのブロックはテーマでcssを定義することを前提としており、プラグインからcssが読み込まれることはなく、CSSのセレクタの優先度をプラグインと競うことはありません。