如何添加带有自定义链接的按钮到Wordpress仪表板?

时间:2017-05-10 22:48:12

标签: php wordpress

我试图通过自定义创建的主题插件,而不是functions.php文件,将自定义按钮添加到WordPress仪表板。

我尝试过使用add_menu_page()方法https://developer.wordpress.org/reference/functions/add_menu_page/,但我认为我并不完全理解它,因为它根本不适用于我:

<?php

add_action('admin_menu', 'mt_add_pages');

function mt_add_pages() {
    add_menu_page( 'Custom Admin Page Title', 'Custom Menu Title', 'manage_options', 'custom_admin_page_slug', 'pg_building_function','',3 );
}

function mt_toplevel_page() {
    echo "<h2>" . _( 'page contents for the menu' ) . "</h2>";
}

此外,我希望能够直接在按钮上创建链接以转到自定义内部/外部URL(target ='_ blank') - 不仅仅是在点击时在仪表板中创建了管理页面。

我做错了吗?我可以使用这种方法来做到这一点吗?

1 个答案:

答案 0 :(得分:2)

add_menu_page发生错误,回调为pg_building_function,但您展示的功能为mt_toplevel_page

一种选择是重定向页面而不是打印任何内容:

add_action('admin_menu', 'mt_add_pages');

function mt_add_pages() {
    add_menu_page( 'Custom Admin Page Title', 'Custom Menu Title', 'manage_options', 'custom_admin_page_slug', 'pg_building_function','',3 );
}

function pg_building_function() {
    wp_redirect( 'https://google.com' );
    exit;
}

另一个是使用JavaScript:

function pg_building_function() {
    echo "<script>window.open('https://google.com');</script>";
}

最后,一些jQuery修改了菜单属性:

add_action( 'admin_menu', 'mt_add_pages' );
add_action( 'admin_head', 'redirect_custom_menu' );
function mt_add_pages() {
    add_menu_page( 'My Menu', 'My Menu', 'manage_options', 'custom_admin_page_slug', __return_null,'',3 );
}
function redirect_custom_menu(){
    ?>
    <script type="text/javascript">
        jQuery(document).ready( function($) {   
            $('a.toplevel_page_custom_admin_page_slug').attr('href','https://google.com').attr('target','_blank');  
        });
    </script>
    <?php
}