定型文の追加:WordPress

WordPress投稿に決まったコンテンツを常に表示したいという要望はよくあると思います。

ショートコードを使った方法やテンプレートに記述する方法などいくつかの方法が考えられるかと思います。

投稿にショートコードを保存します。
使用をやめる場合は、既存投稿からショートコードを削除する必要があります。

テンプレートを使う方法が簡単なので一般的ではないでしょうか。
以下簡単なサンプルコードです。

// single.php

<?php the_content(); ?>
// fooカテゴリーの場合はテンプレートパーツ`path/to/template`を読み込む
<?php if (in_category('foo'): ?>
    <?php get_template_parts('/path/to/template'); ?>
<?php endif; ?>

ただし、上の例は投稿内容を使用するプラグインと併用する場合に、注意が必要になる場合があります。

例えば、投稿のh1〜h6タグから自動で見出しを作成するプラグインなどを使用している場合には、
get_template_parts()関数で読み込まれた内容のh1〜h6は見出しに反映されません。

この場合the_contentフィルターを使って、投稿内容自体にコンテンツを追加する必要があります。

add_filter('the_content`, function($content) {
    if (is_single() && in_category('foo')  {
        return $content . '目的のの定型文...`;
    }
});

WordPressは既存プラグインの挙動によっては思わぬ時間をとられることを思い出してきた。

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。