我正在尝试通过自定义创建的主题插件而不是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') - 而不仅仅是在单击时在仪表板中创建一个管理页面。
我做错了什么吗?我可以使用这个方法来做到这一点吗?
最佳答案
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
}
关于php - 如何将带有自定义链接的按钮添加到 WordPress 仪表板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43903850/