特定の任意のカテゴリに属する投稿記事の末尾にのみ、何らかの文言・定型文を追加したいときは、function.phpに以下のコードをコピペすると可能です。
function add_disclaimer_to_site_memo($content) {
if (is_single() && in_category('100')) {
$disclaimer = '<p style="font-size:0.9em; color:gray; border-top:1px solid #ddd; margin-top:2em; padding-top:1em;">
※ここに定型文を追加を追加する。
</p>';
return $content . $disclaimer;
}
return $content;
}
add_filter('the_content', 'add_disclaimer_to_site_memo');
複数の特定カテゴリでこの技を使いたいときは、↑の【memo】を別のものにすること。
【memo】は1行目と、いちばん下の行にひとつずつあるよ。
cssはどこに記載するのか?
上記コードを見ればわかるとおり、cssは定型文に直接書いている。
再利用ブロック(パターン)を呼び出すことが可能かどうかは未検証。
検証しました!
Cocoonデフォルトのショートコードで呼び出せることは確認できました!
これがCocoonデフォルトのパターン(再利用ブロック)呼び出しのためのショートコードの例。
[pattern id="100"]
末尾の定型文が記事ページ末尾で複数回表示されるときに疑うこと
ウィジェットで、再利用ブロックを呼び出すとこの不具合が発生することがある。
その場合はCocoonデフォルトの再利用ブロック呼び出しショートコードを使えば、不具合が解消できる。
Cocoonデフォルトのショートコードでパターンを呼び出す例。
[pattern id="100"]
ウィジェットで再利用ブロック(パターン)を呼び出すにはどうするのか
2025年9月16日(火)
エラーになっていることを確認したので、新しいコードに差し替えております。
古いほうもいちおう残しておきます。
function.phpに以下の記述をすればウィジェットのカスタムHTMLで再利用ブロック(パターン)を呼び出せる。
// 再利用ブロックをショートコード【[ha-reuse-block id=〇〇]】で呼び出す
function ha_reuse_block_shortcode($atts){
// デフォルト値を設定
$atts = shortcode_atts(
array(
'id' => 0, // 指定がないときは0
),
$atts,
'ha-reuse-block'
);
if ( empty($atts['id']) ) {
return ''; // idが指定されていなければ何も返さない
}
// 再利用ブロックを取得
$reuse_block = get_post( (int) $atts['id'] );
if ( !$reuse_block ) {
return ''; // idが間違ってる場合も空
}
$reuse_block_content = apply_filters( 'the_content', $reuse_block->post_content );
return $reuse_block_content;
}
add_shortcode('ha-reuse-block','ha_reuse_block_shortcode');
このコードだと、以下のショートコードでパターンを呼び出すことになるが
[ha-reuse-block id=100]
- ウィジェットの記事末尾にあたる箇所にこのショートコードを使い、
- さらにこのページ上部記載のコードを使用すると
このショートコードのすぐ上に当たる箇所にも、特定カテゴリのために設定した定型文が表示されてしまう。
特定カテゴリ以外のときにはどのような表示になるのか? は未検証。
旧版。2025年9月16日(火)以前のもの
いままで大丈夫だったのに突然エラーになりました……。
前述の最新版のコードを使ってください。
// 再利用ブロックをショートコード【[ha-reuse-block id=〇〇]】で呼び出す
function ha_reuse_block_shortcode($atts){
// get reusable gutenberg block
$reuse_block = get_post($atts['id']);
$reuse_block_content = apply_filters( 'the_content', $reuse_block->post_content);
return $reuse_block_content;
}
add_shortcode('ha-reuse-block','ha_reuse_block_shortcode');
※本記事は私的備忘録です。自己責任でのご利用をお願いします。