【WordPress】ブロックエディタで投稿者によって表示を出し分ける方法

【WordPress】ブロックエディタで投稿者によって表示を出し分ける方法 WordPress

WordPressのブロックエディタ(Gutenberg)では、ブロックごとに条件を設定して表示・非表示をコントロールすることが可能です。この記事では、特定の投稿者によって表示されるブロックを制御する方法について解説します。

ブロックの条件付き表示の概要

WordPressのブロックエディタは、カスタムブロックやテーマ関数などを用いて、ユーザーの権限や投稿者などに応じて表示内容を変更できます。投稿者ごとの制御は特に、複数人でサイトを運用しているケースで役立ちます。

functions.php に条件分岐のショートコードを追加

以下のコードをテーマの functions.php に追加します。このショートコードを使うことで、特定の投稿者のときだけ中身を表示できます。

function show_if_author_shortcode($atts, $content = null) {
    global $post;

    $atts = shortcode_atts(array(
        'id' => 0,
    ), $atts, 'show_if_author');

    if ($post->post_author == $atts['id']) {
        return do_shortcode($content);
    }

    return '';
}
add_shortcode('show_if_author', 'show_if_author_shortcode');

ショートコードの使い方

エディタ内で以下のようにショートコードを使用します。

[show_if_author id="3"]
この内容は投稿者IDが3のときにだけ表示されます。
[/show_if_author]

投稿者IDはユーザー管理画面などから確認できます。

応用:複数の投稿者IDに対応させたい場合

複数の投稿者に対応する場合は、以下のようにカンマ区切りで対応可能なように改良できます。

function show_if_authors_shortcode($atts, $content = null) {
    global $post;

    $atts = shortcode_atts(array(
        'ids' => '',
    ), $atts, 'show_if_authors');

    $ids = array_map('trim', explode(',', $atts['ids']));

    if (in_array($post->post_author, $ids)) {
        return do_shortcode($content);
    }

    return '';
}
add_shortcode('show_if_authors', 'show_if_authors_shortcode');

使用例:

[show_if_authors ids="2,5,8"]
このコンテンツは投稿者IDが2, 5, 8のいずれかのときに表示されます。
[/show_if_authors]

まとめ

ブロックエディタで投稿者に応じたコンテンツの出し分けを実現することで、より柔軟な編集体験を提供できます。マルチユーザー環境のWordPressサイトでは、こうした条件分岐のショートコードを活用することで、投稿者ごとのガイド表示や権限制御に応用できます。