Add_Menu_Page()中admin_url()的用法

时间:2016-10-23 作者:Andrea Somovigo

是否有人遇到过此问题:使用add\\u menu\\u page()中的admin\\u url()返回两次包含域名的url:

add_submenu_page(
        \'smart-crm\',
        __(\'WP SMART CRM Documents\', \'mytextdomain\'),
        __(\'Documents\', \'mytextdomain\'),
        \'manage_options\',
        admin_url(\'admin.php?page=smart-crm&p=documenti/list.php\'),
        \'\'
        );
我的输出链接是:https://domain.com/domain.com/wp-admin/admin.php?page=smart-crm&p=documenti/list.php

有什么想法吗?

3 个回复
SO网友:vol4ikman

参考号:add submenu page

您不能使用任何函数作为url参数,只能使用admin page slug。

SO网友:Andrea Somovigo

看起来我已经通过以下方式解决了此问题:

$adminurl=admin_url();
add_submenu_page(
    \'smart-crm\',
    __(\'WP SMART CRM Documents\', \'mytextdomain\'),
    __(\'Documents\', \'mytextdomain\'),
    \'manage_options\',
    $$adminurl.\'admin.php?page=smart-crm&p=documenti/list.php\',
    \'\'
    );
现在链接正确了

SO网友:JansenSensei

我很抱歉有必要提出这样一个老话题,但我最近遇到了这个问题,通过google我只能找到“这就是函数所做的”,除了这篇文章之外,与这个问题无关。

我看了看“修复”,并没有真正理解这个修复是如何解决问题的,所以我进行了实验,发现我头上的问号是有根据的。

是的,上述方法确实解决了问题,但这只是一种侥幸。通过在adminurl前面添加$$,他基本上是在调用一个空字符串,因为他将URL存储在一个变量中,然后尝试使用一个名称与URL匹配的变量。由于他从未创建名为$“mysite.com/wp admin”的变量,$$adminurl将始终返回空字符串。

因此,我做了最后一个实验,完全省略了admin\\u url()的使用,效果非常好。一、 e。

add_submenu_page(
    \'smart-crm\',
    __(\'WP SMART CRM Documents\', \'mytextdomain\'),
    __(\'Documents\', \'mytextdomain\'),
    \'manage_options\',
    \'admin.php?page=smart-crm&p=documenti/list.php\',
    \'\');
这就是双域问题的解决方案。理想情况下,我也想知道海报问题的答案,并理解为什么域名会被返回两次,但只要这样做有效,我就可以接受。

相关推荐