Layar Posisi (Kontekstual) Tab Bantuan


9

Menggunakan WP_Screenkelas baru membuatnya cukup mudah untuk menambahkan teks bantuan ke layar.

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

Ini bagus untuk halaman khusus. Tetapi ketika menambahkan tab bantuan ke layar yang ada, katakanlah options-reading.php, beberapa keanehan terjadi.

The load-options-reading.phpkebakaran kait sebelum dibangun di halaman WP menambahkan tab bantuan sendiri. Dengan kata lain, menambahkan tab bantuan ke layar yang ada menabrak semua tab bantuan bawaan ke bagian bawah daftar.

Berikut beberapa kode, jika Anda ingin mencobanya:

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

Apakah ada cara untuk menyusun ulang tab bantuan di layar?

EDIT:

Menemukan jalan keluar untuk ini. Tab bantuan default ditambahkan sebelum admin-header.phpfile disertakan.

Jadi, Anda dapat menghubungkan ke dalam load-{$built_in_page}, dan dari sana mengaitkan fungsi admin_headyang mengatur tab bantuan Anda.

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

Agak seperti retasan. Apakah ada cara yang lebih baik?

Jawaban:


7

Gunakan admin_head-$hook_suffixtindakan, ini adalah metode yang sama hanya menghilangkan tindakan dan panggilan balik exta.


6

Seperti yang disarankan @Mamaduka, Anda dapat menghubungkan admin_head-{$page_hook}dan menambahkan bantuan kontekstual di sana. admin_headkebakaran setelah tab bantuan kontekstual default telah ditambahkan.

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

Saya kira Anda memiliki tiga peluang:

  1. Gunakan WP_Screen->$_help_tabsuntuk menyusun ulang secara manual.
  2. Grap tab bantuan yang ada, simpan sementara di tempat lain. Kemudian gunakan WP_Screen->remove_help_tab( $id )dan kemudian tambahkan kembali secara manual.
  3. Gunakan admin_headfilter untuk mengisi tab bantuan atau salah gunakan salah satu filter atau kait yang menyala sebelum di admin-header.php

1
WP_Screen::$_help_tabsbersifat pribadi. Sayangnya, tidak dapat mengaksesnya secara langsung. Lihat hasil edit saya, saya melakukan saran ketiga Anda!
chrisguitarguy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.