1

データベースからのデータのリストを表示するカスタム WordPress プラグインがあります。私はそのページを次の方法で登録しています:

add_menu_page( 
    'Naročila', 
    'Vsa naročila', 
    'administrator', 
    'listaj-narocila', 
    array( &$this, 'listaj_narocila' )
);

そしてもちろんlista_narocila、データを表示する機能があります。
したがって、現在私のURLは次のとおりです。

http://domain.com/wp-admin/admin.php?page=listaj-narocila

そして、データベースからのデータをテーブルに表示します。これで、レコードごとに DELETE ボタンと EDIT ボタンがありますが、WordPress 内にカスタムの「URL」または「カスタム ページ」を登録して URL を取得する方法を理解するのに苦労しています。

http://domain.com/wp-admin/admin.php?page=single-narocilo?id=X

add_menu_page で試すことができることはわかっていますが、このページを管理メニューに入れたくありません。URLとして利用できるようにするだけです。現在、アクセスエラーは発生していません。

4

1 に答える 1

1

サブメニューページを作成し、その親として渡すnullことができます:

$parent_slug
どのメニューにも表示されないページを作成する場合は、NULL を使用するか、'options.php' に設定します。

デモ:

add_action('admin_menu', function() 
{
    # Main page
    add_menu_page( 
        'Vsa', 
        'Vsa', 
        'add_users', // Capability, not role
        'listaj-narocila', 
        function(){ 
            printf(
                '<h2>%s</h2><a href="%s">%s</a>',
                __( 'Main page' ),
                admin_url( 'admin.php?page=single-norcilo&id='.rand(1,25) ),
                __( 'Hidden sub page' )
            );
        },
        'http://sstatic.net/stackexchange/img/favicon.ico'
    );  

    # Child page    
    $hook = add_submenu_page(
        null,
        'Norcilo',
        'Norcilo',
        'add_users',
        'single-norcilo',
        function(){ 
            printf(
                '<h2>%s</h2><a href="%s">%s</a>',
                __( 'Hidden sub page' ),
                admin_url( 'admin.php?page=listaj-narocila' ),
                __( 'back' )
            );
        }
    );

    # Enqueue script in submenu page to fix the current menu indicator
    add_action( "admin_footer-$hook", function()
    {
        echo <<<HTML
<script type="text/javascript">
jQuery(document).ready( function($) {
    $('#toplevel_page_listaj-narocila')
        .removeClass('wp-not-current-submenu')
        .addClass('current');
});     
</script>
HTML;

    });
});

別のアプローチ: https://wordpress.stackexchange.com/a/114818/12615

于 2013-09-21T19:40:40.377 に答える