Màn hình định vị (Ngữ cảnh) Tab trợ giúp


9

Sử dụng WP_Screenlớp mới giúp dễ dàng thêm văn bản trợ giúp vào màn hình.

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

Điều này là tuyệt vời cho các trang tùy chỉnh. Nhưng khi thêm một tab trợ giúp vào một màn hình hiện có, giả sử options-reading.php, một số điều kỳ lạ xảy ra.

Các load-options-reading.phpvụ cháy móc trước khi xây dựng trong trang WP thêm tab giúp đỡ của riêng mình. Nói cách khác, việc thêm một tab trợ giúp vào một màn hình hiện có sẽ đưa tất cả các tab trợ giúp tích hợp vào cuối danh sách.

Đây là một số mã, nếu bạn muốn dùng thử:

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

Có cách nào để sắp xếp lại các tab trợ giúp trên màn hình không?

BIÊN TẬP:

Tìm thấy một cách xung quanh này. Các tab trợ giúp mặc định được thêm vào trước khi admin-header.phptập tin được bao gồm.

Vì vậy, bạn có thể nối vào load-{$built_in_page}và từ đó móc một chức năng admin_headchăm sóc thiết lập các tab trợ giúp của bạn.

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

Có vẻ giống như một hack. Có cách nào tốt hơn?

Câu trả lời:


7

Sử dụng admin_head-$hook_suffixhành động, đây là phương pháp tương tự chỉ loại bỏ hành động exta và gọi lại.


6

Như @Mamaduka đề xuất, bạn có thể kết nối admin_head-{$page_hook}và thêm trợ giúp theo ngữ cảnh ở đó. admin_headkích hoạt sau khi các tab trợ giúp theo ngữ cảnh mặc định đã được thêm và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

Tôi đoán bạn có ba cơ hội:

  1. Sử dụng WP_Screen->$_help_tabsđể sắp xếp lại chúng bằng tay.
  2. Grap các tab trợ giúp hiện có, lưu chúng tạm thời ở một nơi khác. Sau đó sử dụng WP_Screen->remove_help_tab( $id )và sau đó thêm chúng trở lại bằng tay.
  3. Sử dụng admin_headbộ lọc để điền vào các tab trợ giúp hoặc bỏ lỡ một trong các bộ lọc hoặc móc nối trước nó trong admin-header.php

1
WP_Screen::$_help_tabslà riêng tư. Thật không thể truy cập trực tiếp. Xem chỉnh sửa của tôi, tôi đã đề nghị thứ ba của bạn!
chrisguitarguy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.