画面の配置(コンテキスト)ヘルプタブ


9

新しいWP_Screenクラスを使用すると、ヘルプテキストを画面に簡単に追加できます。

<?php
add_action( "load-{$somepage}", 'wpse_load_reading' );
function wpse_load_reading()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( 'Help Content' )
    ) );
}

これはカスタムページに最適です。しかし、既存の画面にヘルプタブを追加するとoptions-reading.php、たとえば、奇妙なことが起こります。

load-options-reading.phpWPのページに組み込まれた前フック火災は、独自のヘルプタブが追加されます。つまり、既存の画面にヘルプタブを追加すると、すべての組み込みヘルプタブがリストの一番下に表示されます。

これを試してみたい場合のコードを次に示します。

<?php
add_action( "load-options-reading.php", 'wpse_load_reading2' );
function wpse_load_reading2()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( 'Why is this tab above the built in tab?' )
    ) );
}

画面のヘルプタブを並べ替える方法はありますか?

編集:

これを回避する方法を見つけました。admin-header.phpファイルが含まれる前に、デフォルトのヘルプタブが追加されます。

したがってload-{$built_in_page}、にフックし、そこからadmin_headヘルプタブの設定を処理する関数をフックできます。

<?php
add_action( 'load-options-reading.php', 'wpse45210_load' );
function wpse45210_load()
{
    add_action( 'admin_head', 'wpse45210_add_help' );
}

function wpse45210_add_help()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( 'This tab is below the built in tab.' )
    ) );
}

まるでハックのようです。もっと良い方法はありますか?

回答:


7

admin_head-$hook_suffixアクションを使用します。これは、extaアクションとコールバックを削除するだけの同じメソッドです。


6

@Mamadukaが示唆したように、admin_head-{$page_hook}そこにコンテキストヘルプをフックして追加できます。 admin_headデフォルトのコンテキストヘルプタブが追加された後に発生します。

<?php
add_action( 'admin_head-options-reading.php', 'wpse45210_add_help' );
function wpse45210_add_help()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( 'This tab is below the built in tab.' )
    ) );
}

1

チャンスは3つあると思います。

  1. WP_Screen->$_help_tabs手動で並べ替える場合に使用します。
  2. 既存のヘルプタブを取得し、一時的に別の場所に保存します。次に、を使用WP_Screen->remove_help_tab( $id )して、手動で追加し直します。
  3. admin_headフィルターを使用してヘルプタブを設定するか、admin-header.phpでその前に起動するフィルターまたはフックのいずれかを誤用します

1
WP_Screen::$_help_tabsプライベートです。残念ながら直接アクセスすることはできません。私の編集を見て、私はあなたの3番目の提案をしました!
chrisguitarguy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.