获取变量位置的差异

时间:2013-06-24 作者:William

我注意到,在WordPress中的某些情况下(例如在我的自定义帖子类型中),GET变量在URL中显示如下:

www.url。com/事件/酷事件?操作=编辑(&A);消息=1

但是,在其他情况下(例如,当我指向使用重写API创建的登录“虚拟”页面时),URL如下所示:

www.url。com/登录/?操作=登录

如您所见,在第一个变量之前有一个正斜杠。这是什么原因造成的?哪一种是他们出现的正常方式?有什么功能上的区别吗?最后,假设这是有意义的,我如何才能让他们以相似的方式行事?

William更新

add_action( \'init\', \'add_virtual_page_template\' );
function add_virtual_page_template()
{
    global $wp, $wp_rewrite;

    $wp->add_query_var( \'template\' );

    add_rewrite_endpoint( \'login\', EP_PERMALINK | EP_PAGES );
    add_rewrite_rule( \'login/?\', \'index.php?template=login\', \'top\' );

    $wp_rewrite->flush_rules();
}

add_action( \'template_redirect\', \'add_virtual_page_redirect\' );

function add_virtual_page_redirect()
{
    global $wp;

    $queryvar = get_query_var(\'template\');

    if ($queryvar && $queryvar == \'login\')
    {
        include(site_url(\'wp-login.php\'));
        exit;
    }
}

1 个回复
SO网友:TheDeadMedic

没有“正常”的方式(这两种方式都很常见),但这都取决于你的永久链接结构,以及它是否有尾部斜杠。

至于您的登录页面,这完全取决于您如何生成URL,但我建议使用user_trailingslashit( $basepath_without_query ).

顾名思义,它将应用(或删除)尾部斜杠以匹配配置的永久链接结构。

结束

相关推荐

AJAX功能-无法访问wp-admin.php,只能在线访问

我的自定义ajax函数遇到了一些问题。我的控制台日志中有这样一条:“POST-MYSITEURL/wp-admin/admin-ajax.php 302-Found”。所以我的函数不起作用。。。我真的不明白为什么。我已经为前端开发了一个登录表单,它可以在我的本地服务器上正常工作,但不能在线工作。以下是我所做的:function ajax_login_init(){ //First I register my scripts wp_register_script(\'ajax-log