Guias da Ajuda da Tela de Posicionamento (Contextual)

8

Usar a nova classe WP_Screen facilita muito a adição de texto de ajuda a uma tela.

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

Isso é ótimo para páginas personalizadas. Mas ao adicionar uma guia de ajuda a uma tela existente, digamos options-reading.php , alguma estranheza acontece.

O gancho load-options-reading.php é acionado antes que a página WP incorporada inclua suas próprias guias de ajuda. Em outras palavras, adicionar uma guia de ajuda a uma tela existente faz com que todas as guias de ajuda incorporadas fiquem na parte inferior da lista.

Aqui está um código, se você quiser tentar:

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

Existe alguma maneira de reordenar as guias de ajuda em uma tela?

EDITAR:

Encontrou uma maneira de contornar isso. As guias de ajuda padrão são adicionadas antes que o arquivo admin-header.php seja incluído.

Assim, você pode conectar-se a load-{$built_in_page} e, a partir daí, ligar uma função admin_head , que cuida da configuração de suas guias de ajuda.

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

Parece uma espécie de hack. Existe uma maneira melhor?

    
por chrisguitarguy 11.03.2012 / 19:29

3 respostas

5

Como sugerido pelo @Mamaduka, você pode conectar-se a admin_head-{$page_hook} e adicionar a ajuda contextual. admin_head é acionado depois que as guias de ajuda contextual padrão foram adicionadas.

<?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.' )
    ) );
}
    
por chrisguitarguy 12.03.2012 / 01:38
7

Use admin_head-$hook_suffix action, esse é o mesmo método que apenas remove a ação exta e o retorno de chamada.

    
por Mamaduka 11.03.2012 / 22:04
1

Eu acho que você tem três chances:

  1. Use WP_Screen->$_help_tabs para reorganizá-los manualmente.
  2. Grape as guias de ajuda existentes e salve-as temporariamente em outro lugar. Em seguida, use WP_Screen->remove_help_tab( $id ) e, em seguida, adicione-os novamente manualmente.
  3. Use o filtro admin_head para preencher as guias de ajuda ou use um dos filtros ou ganchos que são disparados antes dele no admin-header.php
por kaiser 11.03.2012 / 19:42