Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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 显示当前类别和子类别中的所有帖子_Php_Wordpress - Fatal编程技术网

Php 显示当前类别和子类别中的所有帖子

Php 显示当前类别和子类别中的所有帖子,php,wordpress,Php,Wordpress,我创建了一个名为“product”的自定义帖子类型和一个名为“product\u categories”的自定义分类法 这些类别具有以下结构: 第一类 产品1 产品2 第2类 类别2.1 产品3 产品4 产品5 类别2.2 产品6 产品7 第3类 类别3.1 类别3.1.1 产品8 产品9 因此,我只拥有每个类别最后一个子类别级别的产品 我想要实现的是: 1) 我有一个显示所有主要类别的页面:类别1、类别2、类别3 2) 例如,当我转到类别3时,我想用products

我创建了一个名为“product”的自定义帖子类型和一个名为“product\u categories”的自定义分类法

这些类别具有以下结构:

  • 第一类

    • 产品1
    • 产品2
  • 第2类

    • 类别2.1
      • 产品3
      • 产品4
      • 产品5
    • 类别2.2
      • 产品6
      • 产品7
  • 第3类
    • 类别3.1
      • 类别3.1.1
        • 产品8
        • 产品9
  • 因此,我只拥有每个类别最后一个子类别级别的产品

    我想要实现的是:

    1) 我有一个显示所有主要类别的页面:类别1、类别2、类别3

    2) 例如,当我转到类别3时,我想用products Hierarchy显示他的所有子类别

    你能帮帮我吗?我找了两天多的解决方案,但都没能成功

    这是我能得到的最接近的结果:

    $args=array(
    'post_type'                => 'product',
    'child_of'                 => 0,
    'parent'                   => '',
    'orderby'                  => 'name',
    'order'                    => 'ASC',
    'hide_empty'               => 0,
    'hierarchical'             => 1,
    'exclude'                  => '',
    'include'                  => '',
    'number'                   => '',
    'taxonomy'                 => 'product_categories',
    'pad_counts'               => false,
    'depth'                    => 1
    );
    
    $categories=get_categories($args);
    
    foreach ( $categories as $category ) {
    
        if ( $category->parent > 0 ) {
            continue;   
        }
        echo '<h1 style="font-weight:bold">' . $category->name . '</h1>';
    
        $querystr = "SELECT $wpdb->posts.*
                      FROM $wpdb->posts, $wpdb->term_relationships, $wpdb->terms
                      WHERE term_id = (" . $category->cat_ID . ")
                      AND term_taxonomy_id = (" . $category->term_taxonomy_id . ")
                      AND ID = object_id
                      AND post_type = 'product'
                      AND post_status = 'publish'
                      ORDER BY post_date DESC";
    
        $posts = $wpdb->get_results($querystr, OBJECT);
    
        echo '<ul>';
            foreach ( $posts as $post ) {
    
                setup_postdata($post);  
    
                    echo '<li>'; the_title();   echo '</li>';
    
                    }
        echo '</ul>';
    
        $categories2 = get_terms('product_categories',array('parent' => $category->term_id , 'hide_empty'=> '0', 'hierarchical' => 1, 'depth' => 5 ));
        foreach ( $categories2 as $category ) {
    
        echo '<h2>' . $category->name . '</h2>';
    
        $posts = get_posts( array( 'product_categories' => $category->name, 'post_type' => 'product' ) );  
    
            echo '<ul>';
                foreach($posts as $post) { 
    
                    setup_postdata($post);  
    
                        echo '<li>'; the_title();   echo '</li>';
    
                        }
            echo '</ul>';
    
        }
    }
    
    $args=array(
    “post_类型”=>“产品”,
    'child_of'=>0,
    '父'=>'',
    'orderby'=>'name',
    “订单”=>“ASC”,
    “hide_empty”=>0,
    “层次结构”=>1,
    '排除'=>'',
    '包括'=>'',
    '编号'=>'',
    “分类法”=>“产品类别”,
    “pad_counts”=>false,
    “深度”=>1
    );
    $categories=get_categories($args);
    foreach($categories作为$category){
    如果($category->parent>0){
    继续;
    }
    回显“.$category->name.”;
    $querystr=“选择$wpdb->posts*
    从$wpdb->posts,$wpdb->term\u关系,$wpdb->terms
    其中,术语_id=(“$category->cat_id.”)
    和term_taxonomy_id=(“$category->term_taxonomy_id.”)
    AND ID=对象_ID
    和post_类型=‘产品’
    和post_status='publish'
    邮购日期说明”;
    $posts=$wpdb->get_结果($querystr,OBJECT);
    回声“
      ”; foreach($posts作为$post){ 设置_postdata($post); 回音“
    • ”;标题();回音“
    • ”; } 回声“
    ”; $categories2=get_terms('product_categories',array('parent'=>$category->term_id',hide_empty'=>0','hierarchy'=>1',depth'=>5)); foreach($categories2作为$category){ 回显“.$category->name.”; $posts=get_posts(数组('product_categories'=>$category->name,'post_type'=>product'); 回声“
      ”; foreach(员额为$员额){ 设置_postdata($post); 回音“
    • ”;标题();回音“
    • ”; } 回声“
    ”; } }
    此解决方案显示所有类别,不仅显示当前类别子类别,而且不显示第三级子类别(类别3.1.1)


    非常感谢

    我编辑了上面的问题,包括代码。谢谢“孩子”是关键,不是吗?您将其设置为=“0”,它必须与当前类别的ID相同,并且应该满足您的要求。没有经过测试,但是已经过测试。我该怎么做?要获取$args中当前类别的id?