Guias de ajuda da tela de posicionamento (contextual)


9

O uso da nova WP_Screenclasse facilita bastante adicionar 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 load-options-reading.phpgancho é acionado antes da página do WP incorporada adicionar suas próprias guias de ajuda. Em outras palavras, adicionar uma guia de ajuda a uma tela existente colide com todas as guias de ajuda internas na parte inferior da lista.

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

<?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:

Encontrei uma maneira de contornar isso. As guias de ajuda padrão são adicionadas antes da admin-header.phpinclusão do arquivo.

Assim, você pode conectar load-{$built_in_page}e, a partir daí, conectar uma função admin_headque 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?

Respostas:


7

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


6

Como o @Mamaduka sugeriu, você pode conectar-se admin_head-{$page_hook}e adicionar a ajuda contextual lá. admin_headé acionado após a adição das guias de ajuda contextual padrão.

<?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

Eu acho que você tem três chances:

  1. Use WP_Screen->$_help_tabspara reordená-los manualmente.
  2. Agarre as guias de ajuda existentes, salve-as temporariamente em outro lugar. Em seguida, use WP_Screen->remove_help_tab( $id )e adicione-os novamente manualmente.
  3. Use o admin_headfiltro para preencher as guias de ajuda ou usar incorretamente um dos filtros ou ganchos que são disparados antes dele em admin-header.php

11
WP_Screen::$_help_tabsé privado. Não é possível acessá-lo diretamente, infelizmente. Veja minha edição, fiz sua terceira sugestão!
Chrisguitarguy 11/03/12
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.