如何根据侧边栏菜单中选择的条件在顶部菜单中显示条目?

时间:2015-09-25 作者:A Kashyap

enter image description here

你好我不懂ajax编程。我了解HTML、CSS和一点php(我正在编辑和自定义所有默认主题,并在学习过程中不断学习)。

我已经附上了我的设计师设计的页面UI。现在我在wordpress中制作这个。我已经将左侧菜单指定为类别菜单,因此它包含所有帖子的类别。

我可以为趋势帖子和新帖子创建不同的模板。因此,基本上,我将有3个模板用于分类页面(默认、趋势和新鲜)

我想知道的是如何显示趋势、新鲜和默认的单独菜单。例如,如果用户位于默认页面(主页),则左侧的类别菜单将使用默认模板,当用户位于趋势页面时,左侧的类别菜单将使用趋势模板,依此类推。有没有简单的方法可以做到这一点?我也可以用ajax来实现这一点吗?

主题是《二十四个孩子》。。

2 个回复
最合适的回答,由SO网友:MSTannu 整理而成

如果有3个模板,可以使用条件检查is_page_template 检查当前正在使用的。

看见https://developer.wordpress.org/reference/functions/is_page_template/

或者,如果你说的不是页面模板,而是一个特定的归档模板,你可以用get_queried_object_id.

看见https://developer.wordpress.org/reference/functions/get_queried_object_id/

然后,您可以注册3个不同的菜单位置,并在头文件中输出菜单时使用if语句在它们之间进行选择。

SO网友:A Kashyap

好啊因此,根据Tannu女士的建议,我所做的是

我在函数中注册了两个带有两个主题位置的菜单。php使用下面的代码,然后使用管理部分的外观->菜单在两个菜单中添加单独的页面。

function register_my_menus() {
    register_nav_menus(
        array(
          \'trending-menu\' => __( \'Trending Menu\' ),
          \'fresh-menu\' => __( \'Fresh Menu\' )
        )
    );
}
然后我在函数中声明。php来查找页面是否是子代,并根据一些在线建议生成is\\U树函数。代码如下所示。

// GET PAGE ID FROM THE SLUG, HELPER FUNCTION FOR IS_TREE
function get_ID_by_slug($page_slug) {
        $page = get_page_by_path($page_slug);
        if ($page) {
            return $page->ID;
        } else {
            return null;
        }
}

// DETERMINE IF A PAGE IS IN A DESCENDANT TREE
function is_tree($pid) {      // $pid = The ID of the page we\'re looking for pages underneath
        global $post;         // load details about this page
        $pid = get_ID_by_slug($pid);
        if( is_page() && ($post->post_parent==$pid || is_page($pid) ) )
                   return true;   // we\'re at the page or at a sub page
        else
                   return false;  // we\'re elsewhere
};
最后,我在侧边栏中添加了两个菜单。然后使用if和else语句和is\\u树以及trending和fresh父页面有条件地检查它。代码如下所示。

<?php if ( is_tree(\'trending\') ) { 
     wp_nav_menu( array( \'theme_location\' => \'trending-menu\' ) );
} elseif ( is_tree(\'fresh\') ) { 
     wp_nav_menu( array( \'theme_location\' => \'fresh-menu\' ) );
} ?>
您很快可以访问我的网站this link 看看它是什么样子。

编辑:我已经改进了代码及其工作方式,使其只需使用一个模板来分析帖子的趋势,一个模板用于新帖子,等等。我很快就会发布代码。

相关推荐

Add extra markup to WP menus

我被要求将一个HTML网站重新开发为一个WP主题,它有一个非常高级的菜单结构,我不太确定如何复制它。第二个菜单项有一个子菜单,但它不仅仅是“li”中的“ul”,还有额外的div等。。因为下拉列表有3列布局,其中2列包含子链接,第3列包含内容。这是一个示例:<ul class=\"nav navbar-nav three\"> <li class=\"dropdown yamm-fw\"> <a href=\"#\" class=\"dropdown-toggl