gpt4 book ai didi

php - 如何从 PHP 文件向 Wordpress 菜单添加项目?

转载 作者:可可西里 更新时间:2023-10-31 23:42:31 26 4
gpt4 key购买 nike

我有一个基于 Wordpress 构建的成员(member)网站,我想创建一个对所有用户都相同的导航菜单,除了一个显示“您的订阅”的选项卡,该选项卡将有一个下拉菜单,显示哪些订阅用户有,每个用户都不同。

这是我现在拥有的一小部分样本:

if ( wp_emember_is_member_logged_in('19') ) {
wp_nav_menu( array( 'menu' => 'example1', 'menu_class' => 'sf-menu' ) );

这将检查成员(member)是否具有特定的成员(member)级别,然后输入特定于该成员(member)级别的菜单。唯一的问题是我有 20 个 elseif 语句和 20 个菜单,这根本没有效率。

基本上,我想将单个选项卡添加到一个菜单,而不是创建大量不同的菜单。我只是不知道该怎么做。谢谢!

针对问题进行编辑。

最佳答案

您好,我对您的确切要求有点困惑,您的意思是说您想要为所有用户提供一个菜单,并根据特定的访问级别更改菜单中的 1 个元素?

如果是这种情况,您似乎需要一个“if”语句来确定(正如您所做的那样)我们是否处于正确的访问级别并相应地自定义菜单。基本上看起来您需要两个不同的数组来构建菜单:

if ( wp_emember_is_member_logged_in('19') )
{//this will be show for users with an access level of 19
$menu = array( 'menu' => 'example1', 'menu_class' => 'sf-menu' )
}
else
{//this will be show for all users except with an access level of 19
$menu = array( 'menu' => 'example2', 'menu_class' => 'sf-menu-2' );
}

wp_nav_menu($menu);

您需要在 WP 的这一部分自行配置/设置菜单:

http://YOUR-DOMAIN/wp-admin/nav-menus.php

编辑

看起来您想编写更好的代码并且可能没有 20 个不同的 if/else 语句....我会这样做:

有一个文件夹,其中包含所有自定义菜单作为单独的 PHP 文件,这些文件与用户的组级别共享名称......即

custommenus/19.php
custommenus/20.php
custommenus/21.php
custommenus/22.php

然后为访问级别加载正确的菜单,例如:

//there must be a way for you to grab the user access level
//for now I will hard code it
$current_user_access_level = 19;

$custom_menu_path = 'custommenus/'.$current_user_access_level.'.php';
$default_menu_path = 'custommenus/default.php';

//check to see if the custom menu file exists first
if(file_exists($custom_menu_path))
{
include $custom_menu_path;
}
else
{//then the file exists, load some sort of default file
include $default_menu_path;
}

然后,每当您创建一个新的访问级别时,您需要做的就是将一个与访问级别同名的新文件添加到“custommenus”文件夹中,如果该文件尚未创建,它将加载一个默认值菜单!

希望这会有所帮助 :) [PS 这是未经测试的]

关于php - 如何从 PHP 文件向 Wordpress 菜单添加项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12344264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com