新手的主题开发

时间:2014-09-12 作者:eyoung100

TL;DR, Skip to Trouble

我是一名程序员和网络开发人员。我正试图推出自己的小企业网站,以展示我的才能。因此,我为每个主要开发框架创建了子域,我可以使用这些框架来开发客户站点。每个都已成功运行。

DotNetNuke-ASP。NET-主站点Joomla-CodeIgnitor/CakePHP-我承认我是个老学生。我过去更喜欢记事本/凯特,而且都是手工完成的,但我理解技术的变化。直到最近,我和其他“网络人”一样,会购买一个预先准备好的主题,添加一点内容,确保一切正常,然后转售。为了不让自己看起来像一个“饼干切割者”,也为了不让自己的小额资金因购买别人定价过高的主题而破产,我决定通过自己为每个子域创建主题来展示客户的技能,希望这会让我与众不同。。。。

不像我想的那么容易我去了_s, 并创建了一个启动主题Darkside by integrating Bootstrap 进入我的主题。我很喜欢吸引眼球,我不想手动重新创建按钮和网格,也不想技术改变this blog example, 作为我创造力的基础。我知道,但我起步很慢

在找到BootstrapNavWalker Helper. 跨栏2跳了起来。呜呜。

我将以下代码添加到PHP函数中,以获得登录链接。

/**
 * Add Login/Logout to Menu
 */
function add_login_logout_link($items, $args) {
    if( $args->theme_location == \'primary\' ) {
        $loginoutlink = wp_loginout(\'index.php\', false);
        $items .= \'<li>\'. $loginoutlink .\'</li>\';
    }

    return $items;
}
add_filter(\'wp_nav_menu_items\', \'add_login_logout_link\', 10, 2);
这很有效,但我想要一个按钮,所以我换了$items 收件人:

$items .= \'<li><button type="button" class="btn btn-default">\'. $loginoutlink .\'</button></li>\';
当我在Chrome中开发时,我想它是有效的。我回到家,尝试了Firefox:

Q: 该按钮在Firefox中可见,但单击它不会起任何作用。在Chrome中单击它会进入登录页面,那么正确的输出方式是什么呢$items 那么按钮和/或所有引导项在每个浏览器中都能正常工作?

Q: 我在回顾了来自不同地方的几十个片段后,选择了上面的片段。看到这些,我看到一些使用了输出缓冲区函数,一些没有。在将函数输出到浏览器之前,在缓冲区中包装函数有什么好处?

1 个回复
SO网友:Sisir

查看您的代码(因为我没有看到任何可查看的实时链接)。我假设您正在按钮标记中输出锚标记(使HTML无效)。请尝试以下功能。注意,我将html从button更改为anchor标记。

    /**
     * Add Login/Logout to Menu
     */
    function add_login_logout_link($items, $args) {

        $redirect_to = home_url();

        if( $args->theme_location == \'primary\' ) {
            $loginoutlink = wp_loginout(\'index.php\', false);

            $link = wp_logout_url($redirect_to);
            $label = \'Logout\';

            if(!is_user_logged_in()){ // user not logged in, show login url
                $link = wp_login_url( $redirect_to );
                $label = \'Login\';
            }

            $items .= \'<li><a class="btn btn-default" href="\'. $link .\'">\'. $label .\'</a></li>\';

        }

        return $items;
    }

add_filter(\'wp_nav_menu_items\', \'add_login_logout_link\', 10, 2);

Using Output Buffer

仅在必要时使用输出缓冲区。这可能会产生不寻常的行为。Here is an example.

结束

相关推荐