【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]

よくある質問(FAQ)

Q. Gutenbergのサイドバーパネルを特定の投稿タイプにのみ表示するには?
A. register_post_meta()やregister_block_type()でpost_typesパラメーターを指定します。JavaScriptのPluginPostTypePanelでwp.data.select(‘core/editor’).getCurrentPostType()を確認して表示制御します。
Q. 投稿タイプによって使えるブロックを切り替えるには?
A. allowed_block_types_allフィルターでcontext.post_type(WordPress 5.8以降)を確認し、投稿タイプごとに許可ブロックリストを返します。
Q. Gutenbergのメタボックスを特定の投稿タイプにのみ表示するには?
A. add_meta_box()の第8引数(show_on_screen)またはコールバック内でget_current_screen()->post_typeを確認します。JavaScriptのPluginSidebarでも同様の制御ができます。

まとめ

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