如何处理多种不同的菜单?

时间:2018-08-18 作者:Zeth

我正在开发一个大约有200-300页的网站,每个页面都需要一个自定义的侧菜单,链接到主要的内部页面。这里有一个侧边栏:

链接到/foo/barwww.example.org而另一个侧栏可能具有此结构:

链接到www.example.org/bar/foobarwww.example.org/ex

首选电流:使用ACF?即使Gutenberg即将推出,也可以创建一个ACF字段,这只是一个常规的WYSIWYG编辑器,作为帖子中的一个额外字段。如果为空,则从其父项继承导航。

次佳选项:使用菜单如果我使用菜单,那么我必须在我的函数中创建200-300个“显示位置”。php文件。如果将正确的菜单与给定的页面匹配,那将是一片混乱。所以我想这不是最好的方法。

第三好选择:使用插件

我不能使用widget,因为这意味着每篇文章都有一个widget,这会很混乱。

有什么建议吗?还是ACF真的是最好的选择?

1 个回复
SO网友:Max Yudin

如果我正确理解您的问题,下面是显示页面同级(具有相同父级)列表的代码。从侧栏调用函数。

<?php
function show_page_siblings( $id ) {

    $parent_id = wp_get_post_parent_id( $id );

    // show only on child pages
    if( 0 == $parent_id ) {
        return;
    }

    $siblings = get_pages( array(
        \'child_of\'     => $parent_id,
        \'hierarchical\' => 0,
        \'parent\'       => $parent_id,
        \'post_type\'    => \'page\',
        \'post_status\'  => \'publish\'
    ));

    if( !empty( $siblings ) ) {
        echo \'<ul>\';

        foreach( $siblings as $sibling ) {
            echo \'<li><a href="\' . get_permalink( $sibling->ID ) . \'">\' . $sibling->post_title . \'</a></li>\';
        }

        echo \'</ul>\';
    }

}

结束

相关推荐

如何在WordPress中覆盖/定制wp-admin/nav-menus.php

我想知道是否有办法定制wp管理/导航菜单。php,以便我可以添加自己的额外字段或选项卡。例如,我想为用户创建的每个菜单创建一个新选项卡(菜单设置)。我觉得如果在创建的每个菜单上都附加了特定的设置,会更加方便用户。这可能吗?目前,我正在按主题选项进行此操作,但它有局限性:(