在虚拟页面中隐藏的工具栏

时间:2013-10-08 作者:William

我正在尝试创建一个虚拟页面,但我的管理工具栏没有显示出来。

以下是我创建虚拟页面的方式:

功能。php

add_action(\'init\', function()
{
    add_rewrite_rule(\'register$\', \'index.php?virtualpage=1\', \'top\');
});

add_filter(\'query_vars\', function($query_vars)
{
    $query_vars[] = \'virtualpage\';
    return $query_vars;
});

add_action( \'parse_request\', function(&$wp)
{
    if (array_key_exists(\'virtualpage\', $wp->query_vars))
    {
        switch ($wp->query_vars[\'virtualpage\'])
        {
            case \'1\': include \'page-register.php\';
        }
        exit();
    }
    return;
});
页面寄存器。php
<?php
add_filter(\'wp_title\', function($title, $sep, $seplocation) { return \'Register\'; }, 10, 2);

get_header();
get_template_part(\'includes/breadcrumbs\');
get_template_part(\'includes/top_info\');
?>
<div id="content" class="clearfix fullwidth">
    <div id="left-area">

        <?php
        $form = new Zebra_Form(\'form\');
        $form->add(\'label\', \'label_email\', \'email\', \'Email\');
        $form->add(\'text\', \'email\', \'\', array(\'autocomplete\' => \'off\'));
        $form->add(\'submit\', \'btnsubmit\', \'Submit\');
        $form->render();
        ?>

    </div>
</div> <!-- end #content -->
<?php get_footer();
我做错了什么?

解决方案

根据响应,我将一个函数附加到“template\\u redirect”操作,而不是“parse\\u request”操作,如下所示:

add_action(\'template_redirect\', function()
{
    global $wp;

    if (array_key_exists(\'virtualpage\', $wp->query_vars))
    {
        switch ($wp->query_vars[\'virtualpage\'])
        {
            case \'1\': include \'page-register.php\';
        }
        exit();
    }
    return;
});

1 个回复
SO网友:s_ha_dum

管理栏是initialized on template_redirect. 你一定是短路了。

快速而肮脏的方法是运行_wp_admin_bar_init(); 靠近页面顶部。

add_filter(\'wp_title\', function($title, $sep, $seplocation) { return \'Register\'; }, 10, 2);

_wp_admin_bar_init(); // <- this <-

get_header();
get_template_part(\'includes/breadcrumbs\');
get_template_part(\'includes/top_info\');
只需将函数挂接到template_redirect 相反,除非您有令人信服的理由使用有点奇怪的钩子选择parse_query, 这就是我的建议。

add_action( \'template_redirect\', function()
{
    global $wp_query;
    if (array_key_exists(\'virtualpage\', $wp_query->query_vars))
    {
        switch ($wp_query->query_vars[\'virtualpage\'])
        {
            case \'1\' :
                include \'page-register.php\';
                break;
        }
        exit();
    }
    return;
});

结束

相关推荐

自定义POST类型存档-NAV-MENU-template.php中的错误

我使用CCTM plugin 和复制/粘贴存档。php存档车辆。php,但这导致我的标题中出现错误:Warning: in_array() expects parameter 2 to be array, null given in /home/.../public_html/wp-includes/nav-menu-template.php on line 439 每个主菜单项(没有子菜单)都会重复相同的错误。如果我移除存档车辆。php和使用归档查看相同的帖子。php没有出现错误。为什么会这样