wake-up-neo.net

Positionsbildschirm (kontextbezogen) - Hilferegisterkarten

Mit der neuen Klasse WP_Screen können Sie einem Bildschirm auf einfache Weise Hilfetexte hinzufügen.

<?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' )
    ) );
}

Dies ist ideal für benutzerdefinierte Seiten. Wenn Sie einem vorhandenen Bildschirm eine Hilferegisterkarte hinzufügen, sagen wir options-reading.php, dann passiert etwas Seltsames.

Der Haken load-options-reading.php wird ausgelöst, bevor die eingebaute Seite WP ihre eigenen Hilferegisterkarten hinzufügt. Mit anderen Worten, wenn Sie einem vorhandenen Bildschirm eine Hilferegisterkarte hinzufügen, werden alle integrierten Hilferegisterkarten am Ende der Liste angezeigt.

Hier ist ein Code, wenn Sie dies ausprobieren möchten:

<?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?' )
    ) );
}

Gibt es eine Möglichkeit, die Hilfe-Registerkarten auf einem Bildschirm neu anzuordnen?

BEARBEITEN:

Einen Weg gefunden, um das zu umgehen. Die Standard-Hilferegisterkarten werden hinzugefügt, bevor die admin-header.php-Datei eingefügt wird.

Sie können sich also in load-{$built_in_page} einbinden und von dort aus eine Funktion admin_head einbinden, die sich um das Einrichten Ihrer Hilfe-Registerkarten kümmert.

<?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.' )
    ) );
}

Scheint ein bisschen wie ein Hack. Gibt es einen besseren Weg?

8
chrisguitarguy

Wie von @Mamaduka vorgeschlagen, können Sie sich in admin_head-{$page_hook} einbinden und dort die kontextbezogene Hilfe hinzufügen. admin_head wird ausgelöst, nachdem die standardmäßigen Registerkarten für die kontextbezogene Hilfe hinzugefügt wurden.

<?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.' )
    ) );
}
5
chrisguitarguy

Verwende admin_head-$hook_suffix action, dies ist die gleiche Methode, mit der nur exta action und callback entfernt werden.

6
Mamaduka

Ich denke du hast drei Chancen:

  1. Verwenden Sie WP_Screen->$_help_tabs, um sie manuell neu zu ordnen.
  2. Nehmen Sie die vorhandenen Hilferegisterkarten zur Hand und speichern Sie sie vorübergehend an einem anderen Ort. Verwenden Sie dann WP_Screen->remove_help_tab( $id ) und fügen Sie sie manuell wieder hinzu.
  3. Verwenden Sie den Filter admin_head, um die Hilfe-Registerkarten aufzufüllen, oder verwenden Sie einen der Filter oder Hooks, die vor dem Filter in der Datei admin-header.php ausgelöst wurden, nicht
1
kaiser