Cocoon:特定カテゴリの記事末尾に定型文を追加する用メモ | あとりえ極星堂
現在、持ち込み用の新作を制作中です。情報守秘のため、詳細はしばらくお待ちください。

※ ページ内に広告が含まれています。

Cocoon:特定カテゴリの記事末尾に定型文を追加する用メモ

現在、持ち込み用の新作を制作中です。
情報守秘のため、詳細はしばらくお待ちください。

特定の任意のカテゴリに属する投稿記事の末尾にのみ、何らかの文言・定型文を追加したいときは、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');

※本記事は私的備忘録です。自己責任でのご利用をお願いします。