WordPressメモ:セクション6

55.
//アクションに関数をフックする
//第一引数:フックされるアクション名
//第二引数:フックされる関数
add_action('init',function(){
//投稿タイプを作成
//第一引数:投稿タイプ名
register_post_type('item',[
//第二引数:引数の配列。
//たくさんあるので関数名で検索してチェックする
'label'=>'商品',
'public'=>true,
'menu_position'=>10,
'menu_icon'=>'dashicons-store',
//アイキャッチを有効にしたい時は、thumbnailを入れるとデフォルトの設定が消えてしまうので、title','editor'も併せて設定が必要
'supports'=>['thumbnail','title','editor']
]);
});

58:
カスタム投稿を固定ページのように扱うための設定
register_post_type('item',[
'label'=>'商品',
'public'=>true,
'menu_position'=>10,
'menu_icon'=>'dashicons-store',
//page-attributesで親を選ぶ欄を表示させる
'supports'=>['thumbnail','title','editor','page-attributes'],
//一覧ページを作れるようにする
'has_archive'=>true,
//階層を持たせる
'hierarchical'=>true,
]);
59:
show_in_restで新ビジュアルエディタを使えるようにできる

60:
//カスタムタクソノミーを追加
//この関数は init アクションを使って呼び出してください。
//register_post_typeの下に書くのが一般的
//第一引数タクソノミーの名前。英小文字とアンダースコアのみ、32文字以下
//第二引数:タクソノミーオブジェクトのオブジェクト名。オブジェクトタイプは WordPress 標準の投稿タイプ、または登録されているカスタム投稿タイプ。
register_taxonomy('genre','item',[
'label' => '商品ジャンル',
//'hierarchical'=> true,だとカテゴリに。falseだとタグになる
'hierarchical'=> true,
//
'show_in_rest'=>true,
]);
//追記していけば増やせる
register_taxonomy('koumoku','item',[
'label' => '項目',
'hierarchical'=> false,
'show_in_rest'=>true,
]);

61:
taxonomy-タクソノミーの名前.php
で、その分類の一覧作れる
taxonomy-タクソノミーの名前-スラッグ名.php
で、その分類のカテゴリの一覧作れる
カテゴリによってヘッダ等分けたい時に使える

62:
//投稿に割り当てられたタクソノミーのターム(カスタム分類の項目)を取得
<?php $terms = get_the_terms(get_the_ID(),'genre'); ?>
//投稿があれば
★普通の投稿はカテゴリ指定しなかったらデフォルトのカテゴリに分類されるが、投稿タイプは勝手に分類されないので、$terms画取得できていなかったらエラーになる。なので、<php if($terms): ?>タクソノミーがあればという指定が必要になる。
<php if($terms): ?>
<ul>
<?php foreach ($terms as $term): ?>
<li><a href="<?php echo get_term_link($term); ?>"><?php echo esc_html($term->name); ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

70:
ショートコードを埋め込もう
functions.phpのなかに
add_shortcode('ショートコード名',function(){
return 表示したい内容;
});
でショートコードを作成し、
テンプレート内で[ ]の中にショートコード名を入れて表示させる

71:
ショートコードにパラメータをつける
add_shortcode('sum',function($atts){
$atts = shortcode_atts([
'x' => 0,
'y' => 0
],$atts,'sum');
return $atts['x'] + $atts['y'];
});

この記事が気に入ったらサポートをしてみませんか?