ブログ
wp-cli でテーマ作成
先日 WP-CLIインストールでも紹介した wp-cli ですが、scaffold
1 コマンドが何かと便利そうだったのでまとめてみました。
_s(Underscores)のインストール
弊社ではよく bones のようなテンプレートを使ってWordpressのテーマを作っていたんですが、wp-cliでは _s (Underscores) が使えそうなのでこちらをベースに紹介していきます。
wp scaffold _s
で_s のデフォルトテンプレートを呼び出します。
sample_themeというslugの「サンプルテーマ」をSASSデータ付きでインストールして、テーマを有効化する場合は下記のコマンドになります。--author
は製作者名。
※ Underscores のジェネレーターと同様のオプションが設定できます。
$ wp scaffold _s sample_theme --theme_name="サンプルテーマ" --author="EVOWORX" --sassify --activate
コマンド/オプション | 説明 |
---|---|
wp scaffold _s <slug> |
_sのテンプレート呼び出し。slugにはWP内で使用するテーマ名を半角英数で。 |
--theme_name="<title>" |
表示用のテーマ名(日本語可) |
--author="<name>" |
テーマの製作者名 |
--sassify |
SASSのデータをテンプレート内に生成 |
--activate |
インストール後に即有効化 |
詳しくは wp scaffold _s 。
カスタム投稿タイプの追加
wp scaffold post-type
でカスタム投稿タイプも簡単に追加できます。
先ほど作成した sample_theme
に blog
というスラッグで「ブログ」というカスタム投稿タイプを作成する場合はこちらのコマンドで。
--theme
を指定しない場合は、コードがターミナル内に出力されます(STDOUT)。functions.php にコピー&ペーストする場合は--theme
オプションなしで使ってください。
$ wp scaffold post-type blog --label="ブログ" --theme="sample_theme"
コマンド/オプション | 説明 |
---|---|
wp scaffold post-type <slug> |
カスタム投稿タイプテンプレート呼び出し。slugは半角英数で。 |
--label="<title>" |
カスタム投稿タイプの表示名 |
--theme="<theme>" |
出力先のテーマディレクトリ名 |
--theme
を指定した場合は下記のようなメッセージが表示されます。
Success: Created '/path/to/wp-content/themes/sample_theme/post-types/blog.php'.
無事生成されたら functions.php
から
require get_template_directory() . '/post-types/blog.php';
のようにして読み込んでください。
詳しくは wp scaffold post-type 。
カスタムタクソノミーの追加
上記のカスタム投稿タイプ blog
にカテゴリーとタグをカスタムタクソノミーで追加する場合は wp scaffold taxonomy
を使います。
まずはタグから。
カスタム投稿タイプ同様 --theme
を指定しない場合はターミナル内に出力されます。
$ wp scaffold taxonomy blog_tag --label="ブログのタグ" --post_types="blog" --theme="sample_theme"
コマンド/オプション | 説明 |
---|---|
wp scaffold taxonomy <slug> |
カスタムタクソノミープテンプレート呼び出し。slugは半角英数で。 |
--label="<title>" |
カスタムタクソノミーの表示名 |
--post_types="<post_types>" |
関連付けたい投稿タイプ名 |
--theme="<theme>" |
出力先のテーマディレクトリ名 |
詳しくは wp scafflod taxonomy。
無事作成できたら下記のようなメッセージが表示されます。
Success: Created /path/to/wp-content/themes/sample_theme/taxonomies/blog_tag.php'.
こちらも投稿タイプ同様に functions.php から読み込みます。
require get_template_directory() . '/taxonomies/blog_tag.php';
カテゴリーもタグの場合とほぼ一緒です。
$ wp scaffold taxonomy blog_category --label="ブログのカテゴリー" --post_types="blog" --theme="sample_theme"
ただし、そのままではカテゴリーとして使用できないので、生成されたコードの hierarchical
を true
に修正してください。
function blog_category_init() {
register_taxonomy( 'blog_category', array( 'blog' ), array(
'hierarchical' => true, //false を trueに変更
'public' => true,
'show_in_nav_menus' => true,
'show_ui' => true,
'show_admin_column' => false,
'query_var' => true,
'rewrite' => true,
'capabilities' => array(
'manage_terms' => 'edit_posts',
'edit_terms' => 'edit_posts',
'delete_terms' => 'edit_posts',
'assign_terms' => 'edit_posts'
),
以上で _s のインストールとカスタム投稿タイプ、カスタムタクソノミーの追加は完了です。
プラグインのインストール
ちなみに、プラグインのインストールなんかも可能です。
以前弊社ブログでも紹介したCMB2をインストール&有効化するときはこちらのコマンドで。
$ wp plugin install cmb2 --activate
コマンド/オプション | 説明 |
---|---|
wp plugin install <plugin|zip|url>... |
インストールしたいプラグイン名を指定します。ローカスのzipファイルの場合はパスを、直接ダウンロードする場合はURLも指定可能です。 |
--activate |
インストール後に即有効化 |
詳しくはwp plugin install。
アンインストール
無効化してからアンインストールする場合はこちら。--skip-delete
もつけることでファイルは削除しないでアンインストールもできるようです。
$ wp plugin uninstall cmb2 --deactivate
詳しくは wp plugin uninstall。
アップデート
一括でプラグインを更新したい場合は --all
をつければ一瞬です。
一括でやるのがちょっと心配な人は --dry-run
で一度何が更新されるか確認してからやるのが安全かもしれません。
$ wp plugin update --all
詳しくは wp plugin update。