Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress-在wp_列表页面中隐藏子页面的子页面_Php_Wordpress_Menu - Fatal编程技术网

Php Wordpress-在wp_列表页面中隐藏子页面的子页面

Php Wordpress-在wp_列表页面中隐藏子页面的子页面,php,wordpress,menu,Php,Wordpress,Menu,我有以下页面结构: 主页(id 5) 第1子页 儿童网页 儿童网页 第2子页 儿童网页 儿童网页 我使用此代码显示我的侧栏菜单: <?php wp_list_pages('child_of=5&title_li=&link_before=<span>&link_after=</span>'); ?> 此代码仅显示一个列表。我需要展示 在主页面上时,仅显示子页面 在子页面上时,显示我当前所在子页面的子页面和子页面

我有以下页面结构:

  • 主页(id 5)
    • 第1子页
      • 儿童网页
      • 儿童网页
    • 第2子页
      • 儿童网页
      • 儿童网页
我使用此代码显示我的侧栏菜单:

 <?php wp_list_pages('child_of=5&title_li=&link_before=<span>&link_after=</span>'); ?>

此代码仅显示一个列表。我需要展示

  • 在主页面上时,仅显示子页面
  • 在子页面上时,显示我当前所在子页面的子页面和子页面
  • 在子页面上,显示我当前所在父子页面的显示子页面和子页面
你知道怎么做吗?
感谢您的帮助

使用深度处理您希望它显示的内容

<?php wp_list_pages('child_of=5&depth=1&title_li=&link_before=<span>&link_after=</span>'); ?>

使用深度来处理您希望它显示的内容

<?php wp_list_pages('child_of=5&depth=1&title_li=&link_before=<span>&link_after=</span>'); ?>
你可以试着用这个。我不确定它是否完全支持您想要的内容,但我在我的一个项目中使用了它,效果非常好

此小部件将:

使折叠的分层页面/类别/分类列表:顶部 水平;当前子女的祖先、子女和/或兄弟姐妹

你可以试着用这个。我不确定它是否完全支持您想要的内容,但我在我的一个项目中使用了它,效果非常好

此小部件将:

使折叠的分层页面/类别/分类列表:顶部 水平;当前子女的祖先、子女和/或兄弟姐妹


我找到了一个工作代码,对我来说就像一个符咒:

/**
 * Create HTML list of pages.
 *
 * @package Razorback
 * @subpackage Walker
 * @author Michael Fields <michael@mfields.org>
 * @copyright Copyright (c) 2010, Michael Fields
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 *
 * @uses Walker_Page
 *
 * @since 2010-05-28
 * @alter 2010-10-09
 */
class Razorback_Walker_Page_Selective_Children extends Walker_Page {
    /**
     * Walk the Page Tree.
     *
     * @global stdClass WordPress post object.
     * @uses Walker_Page::$db_fields
     * @uses Walker_Page::display_element()
     *
     * @since 2010-05-28
     * @alter 2010-10-09
     */
    function walk( $elements, $max_depth ) {
        global $post;
        $args = array_slice( func_get_args(), 2 );
        $output = '';

        /* invalid parameter */
        if ( $max_depth < -1 ) {
            return $output;
        }

        /* Nothing to walk */
        if ( empty( $elements ) ) {
            return $output;
        }

        /* Set up variables. */
        $top_level_elements = array();
        $children_elements  = array();
        $parent_field = $this->db_fields['parent'];
        $child_of = ( isset( $args[0]['child_of'] ) ) ? (int) $args[0]['child_of'] : 0;

        /* Loop elements */
        foreach ( (array) $elements as $e ) {
            $parent_id = $e->$parent_field;
            if ( isset( $parent_id ) ) {
                /* Top level pages. */
                if( $child_of === $parent_id ) {
                    $top_level_elements[] = $e;
                }
                /* Only display children of the current hierarchy. */
                else if (
                    ( isset( $post->ID ) && $parent_id == $post->ID ) ||
                    ( isset( $post->post_parent ) && $parent_id == $post->post_parent ) ||
                    ( isset( $post->ancestors ) && in_array( $parent_id, (array) $post->ancestors ) )
                ) {
                    $children_elements[ $e->$parent_field ][] = $e;
                }
            }
        }

        /* Define output. */
        foreach ( $top_level_elements as $e ) {
            $this->display_element( $e, $children_elements, $max_depth, 0, $args, $output );
        }
        return $output;
    }
}
/**
*创建页面的HTML列表。
*
*@package-Razorback
*@subpackage Walker
*@作者迈克尔·菲尔兹
*@版权所有(c)2010,Michael Fields
*@许可证http://opensource.org/licenses/gpl-license.php 公共许可证
*
*@uses Walker\u页面
*
*@自2010年5月28日起
*@alter 2010-10-09
*/
类Razorback\u Walker\u Page\u Selective\u子类扩展Walker\u Page{
/**
*浏览页面树。
*
*@global stdClass WordPress post对象。
*@uses Walker\u页面::$db\u字段
*@uses\u Page::display\u元素()
*
*@自2010年5月28日起
*@alter 2010-10-09
*/
功能行走($elements,$max_depth){
全球$员额;
$args=array\u slice(func\u get\u args(),2);
$output='';
/*无效参数*/
如果($max_depth<-1){
返回$output;
}
/*没什么可走的*/
if(空($elements)){
返回$output;
}
/*设置变量*/
$top_level_elements=array();
$children_elements=array();
$parent_field=$this->db_fields['parent'];
$child_of=(isset($args[0]['child_of'])?(int)$args[0]['child_of']:0;
/*循环元素*/
foreach((数组)$elements作为$e){
$parent\u id=$e->$parent\u字段;
if(isset($parent_id)){
/*顶级页面*/
如果($child\u of==$parent\u id){
$top_level_elements[]=$e;
}
/*仅显示当前层次结构的子级*/
否则如果(
(isset($post->ID)&&$parent\U ID==$post->ID)||
(isset($post->post\U parent)&&$parent\U id==$post->post\U parent)||
(isset($post->祖先)和&in_数组($parent_id,(数组)$post->祖先))
) {
$children\u元素[$e->$parent\u字段][]=$e;
}
}
}
/*定义输出*/
foreach($e为顶级元素){
$this->display\u element($e,$children\u elements,$max\u depth,0,$args,$output);
}
返回$output;
}
}

我找到了一个有效的代码,对我来说就像一个符咒:

/**
 * Create HTML list of pages.
 *
 * @package Razorback
 * @subpackage Walker
 * @author Michael Fields <michael@mfields.org>
 * @copyright Copyright (c) 2010, Michael Fields
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 *
 * @uses Walker_Page
 *
 * @since 2010-05-28
 * @alter 2010-10-09
 */
class Razorback_Walker_Page_Selective_Children extends Walker_Page {
    /**
     * Walk the Page Tree.
     *
     * @global stdClass WordPress post object.
     * @uses Walker_Page::$db_fields
     * @uses Walker_Page::display_element()
     *
     * @since 2010-05-28
     * @alter 2010-10-09
     */
    function walk( $elements, $max_depth ) {
        global $post;
        $args = array_slice( func_get_args(), 2 );
        $output = '';

        /* invalid parameter */
        if ( $max_depth < -1 ) {
            return $output;
        }

        /* Nothing to walk */
        if ( empty( $elements ) ) {
            return $output;
        }

        /* Set up variables. */
        $top_level_elements = array();
        $children_elements  = array();
        $parent_field = $this->db_fields['parent'];
        $child_of = ( isset( $args[0]['child_of'] ) ) ? (int) $args[0]['child_of'] : 0;

        /* Loop elements */
        foreach ( (array) $elements as $e ) {
            $parent_id = $e->$parent_field;
            if ( isset( $parent_id ) ) {
                /* Top level pages. */
                if( $child_of === $parent_id ) {
                    $top_level_elements[] = $e;
                }
                /* Only display children of the current hierarchy. */
                else if (
                    ( isset( $post->ID ) && $parent_id == $post->ID ) ||
                    ( isset( $post->post_parent ) && $parent_id == $post->post_parent ) ||
                    ( isset( $post->ancestors ) && in_array( $parent_id, (array) $post->ancestors ) )
                ) {
                    $children_elements[ $e->$parent_field ][] = $e;
                }
            }
        }

        /* Define output. */
        foreach ( $top_level_elements as $e ) {
            $this->display_element( $e, $children_elements, $max_depth, 0, $args, $output );
        }
        return $output;
    }
}
/**
*创建页面的HTML列表。
*
*@package-Razorback
*@subpackage Walker
*@作者迈克尔·菲尔兹
*@版权所有(c)2010,Michael Fields
*@许可证http://opensource.org/licenses/gpl-license.php 公共许可证
*
*@uses Walker\u页面
*
*@自2010年5月28日起
*@alter 2010-10-09
*/
类Razorback\u Walker\u Page\u Selective\u子类扩展Walker\u Page{
/**
*浏览页面树。
*
*@global stdClass WordPress post对象。
*@uses Walker\u页面::$db\u字段
*@uses\u Page::display\u元素()
*
*@自2010年5月28日起
*@alter 2010-10-09
*/
功能行走($elements,$max_depth){
全球$员额;
$args=array\u slice(func\u get\u args(),2);
$output='';
/*无效参数*/
如果($max_depth<-1){
返回$output;
}
/*没什么可走的*/
if(空($elements)){
返回$output;
}
/*设置变量*/
$top_level_elements=array();
$children_elements=array();
$parent_field=$this->db_fields['parent'];
$child_of=(isset($args[0]['child_of'])?(int)$args[0]['child_of']:0;
/*循环元素*/
foreach((数组)$elements作为$e){
$parent\u id=$e->$parent\u字段;
if(isset($parent_id)){
/*顶级页面*/
如果($child\u of==$parent\u id){
$top_level_elements[]=$e;
}
/*仅显示当前层次结构的子级*/
否则如果(
(isset($post->ID)&&$parent\U ID==$post->ID)||
(isset($post->post\U parent)&&$parent\U id==$post->post\U parent)||
(isset($post->祖先)和&in_数组($parent_id,(数组)$post->祖先))
) {
$children\u元素[$e->$parent\u字段][]=$e;
}
}
}
/*定义输出*/
foreach($e为顶级元素){
$this->display\u element($e,$children\u elements,$max\u depth,0,$args$