菜单栏中的登录/注销字段不合适且不起作用(Wordpress)

Posted

技术标签:

【中文标题】菜单栏中的登录/注销字段不合适且不起作用(Wordpress)【英文标题】:Login/Logout field in menu bar is out of place and not functioning (Wordpress) 【发布时间】:2016-04-06 23:41:36 【问题描述】:

在过去的两天里,我一直在尝试学习如何在我的网站的顶部菜单栏中添加一个漂亮的登录/注销/注册字段。我最近才开始熟悉编辑器。我在***中挖掘了这段代码。我喜欢它的外观,我希望能稍微调整一下。

    /* Custom Login Menu Field */
add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);

function add_login_logout_link($items, $args) 
// start buffering
ob_start();
// this is the actual form function
wp_login_form($args); // $args optional see below ..
// get buffering
$loginoutform = ob_get_contents();
// clean buffering
ob_end_clean();
$items .= $loginoutform ; // concatenate buffering with items ...
return $items;

我想做的是让登录字段区域水平居中在顶部/主菜单栏的中间。正如你所看到的,它目前一直在右边,并且延伸了整个东西。当我使用它时 - 它确实让我登录,但在登录时不会切换到“注销”选项。

如果有人对我如何添加或修改我的入门代码有任何这方面的知识,我将不胜感激。最好的问候 - Cypher。

网站:cypherbeats.com 主题:贾维斯(最新) 代码被添加到functions.php

【问题讨论】:

【参考方案1】:

在撰写本文时,我看不到您所说的登录栏。所以不能说你的代码是否有效。

在您的代码中,您可以使用函数is_user_logged_in() 作为条件来检查访问者是否已登录。因此您可以使用它来决定是否输出登录代码或注销代码。 wp_loginout() 函数似乎显示一个注销按钮。所以像这样的东西可以工作:

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

function add_login_logout_link($items, $args) 
// start buffering
ob_start();
// this is the actual form function
if( !is_user_logged_in() )
    wp_login_form($args); // $args optional see below ..
else
    wp_loginout();
// get buffering
$loginoutform = ob_get_contents();
// clean buffering
ob_end_clean();
$items .= $loginoutform ; // concatenate buffering with items ...
return $items;

警告我没有对此进行测试,只是一个建议让你开始。

这是一种可能很方便的替代方法。首先安装这个插件: https://wordpress.org/plugins/nav-menu-roles/ 然后创建一个仅对已注销的用户可见的登录链接和一个仅对已登录的用户可见的注销链接。然后,您可以编写一些 javascript,当您按下登录按钮时,会导致登录表单在灯箱中弹出。我在https://ptofchoice.com.au/使用这种方法

【讨论】:

感谢您的回复!我很感激你抽出时间来帮助我。很抱歉,在你去检查的时候没有出现,我自己添加了一些代码,在我的整个 wordpress 中造成了一个致命错误,不得不恢复备份.. 哈哈。我将提供您的信息,并会尽快回复结果。 显示注销的开关确实有效:) 菜单再次被拉长以显示表单,登录后注销选项会自动出现在我的“支持”菜单选项旁边。遗憾的是,我没有足够的知识将这个想法整合到一个完善的工作功能中。我确实查看了您的网站,不得不说我喜欢它的外观。对我来说绝对是更好的方法,但我很固执,不想放弃这一点。 - 另外,我将暂时保留此登录代码,以便您再看看发生了什么。 基本上,您正在尝试使登录成为菜单的一部分。由于您将登录表单定位在中心,因此在生成标题的代码中输出可能会更容易。使表单看起来不错是让它工作的另一个问题 是的,不要以为我真的介意它现在看起来有多好^-^ 我的 header.php 没有产生任何东西,所以我尝试了 menu_section.php 只是乱七八糟,代码自行放置当我刷新主页时,在菜单中间写了出来(尴尬)但至少它给了我提示。我想向您展示我的 menu_section 代码,看看您是否能找到合适的地方让我添加到我的登录代码中。我可以把它粘贴到这里的评论中吗? 我建议您最好提出一个新问题并发布一个链接。您的登录表单不会成为菜单的一部分。我强烈建议不要将其硬塞到任何菜单代码中

以上是关于菜单栏中的登录/注销字段不合适且不起作用(Wordpress)的主要内容,如果未能解决你的问题,请参考以下文章

注销按钮操作不起作用

注销后Drupal 9.2登录不起作用

TwitterKit 注销不起作用

注销按钮不起作用

第二次 Django 注销不起作用

spring-boot 表单登录/注销不起作用(找不到路径)