Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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/8/linq/3.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-获取类别和;文章类型_Php_Wordpress - Fatal编程技术网

Php WordPress-获取类别和;文章类型

Php WordPress-获取类别和;文章类型,php,wordpress,Php,Wordpress,我想获取所有类别和属于该类别的帖子,要获取所有类别,我使用以下代码 $cat_args = array( 'taxonomy' => 'article-category', 'orderby' => 'menu_order', 'order' => 'ASC', 'hierarchical' => true, 'parent' => 0, 'hide_empty'

我想获取所有类别和属于该类别的帖子,要获取所有类别,我使用以下代码

$cat_args = array(
    'taxonomy'      => 'article-category',
    'orderby'       => 'menu_order',
    'order'         => 'ASC',
    'hierarchical'  => true,
    'parent'        => 0,
    'hide_empty'    => true,
    'child_of'      => 0
);
$get_categories = get_categories( $cat_args );
要获取所有类型文章的帖子,我使用以下代码

$query = new WP_Query(array(
    'post_type' => 'article',
    'post_status' => 'publish',
    'posts_per_page' => -1,
));
while ($query->have_posts()) {
    $query->the_post();
    $post_id = get_the_ID();
}
这在一个单独的循环中为我提供了所有类别的列表和所有类型文章的列表,但是我想要的是这一行中的内容

Category 1
    - Post 1 Title
    - Post 2 Title
    - Post 3 Title
Category 2
    - Post 4 Title
    - Post 5 Title
    - Post 6 Title
    - Post 7 Title
    ...
...
我基本上是试图获取所有类别和所有类型的文章,属于这个类别,我尝试了许多不同的方式,但似乎没有任何结果,如何去做呢


谢谢。

不完全是解决方案,但您可以遵循以下逻辑

1) 获取类别

  $cat_args = array(
        'taxonomy'      => 'article-category',
        'orderby'       => 'menu_order',
        'order'         => 'ASC',
        'hierarchical'  => true,
        'parent'        => 0,
        'hide_empty'    => true,
        'child_of'      => 0
    );
    $get_categories = get_categories( $cat_args );
2) 循环遍历每个类别并获取帖子,将它们添加到最终数组中

$mFinalArray = []; // init empty array

foreach($get_categories as $category){


$query = new WP_Query(array(
    'post_type' => 'article',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'category_name' => $category, // fetch all posts that are in current $category
));
while ($query->have_posts()) {
    $query->the_post();
    $mFinalArray[$category][] = get_post(get_the_ID()); // add post under current category
}

// reset loop here

}
输出如下:

Array(

 [a_category_name_example1] => array(many_posts_here_of_this_category),
 [a_category_name_example2] => array(many_posts_here_of_this_category),
)

考虑使用上面的代码,因为它可能不完全正确。

不完全是解决方案,但您可以遵循以下逻辑

1) 获取类别

  $cat_args = array(
        'taxonomy'      => 'article-category',
        'orderby'       => 'menu_order',
        'order'         => 'ASC',
        'hierarchical'  => true,
        'parent'        => 0,
        'hide_empty'    => true,
        'child_of'      => 0
    );
    $get_categories = get_categories( $cat_args );
2) 循环遍历每个类别并获取帖子,将它们添加到最终数组中

$mFinalArray = []; // init empty array

foreach($get_categories as $category){


$query = new WP_Query(array(
    'post_type' => 'article',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'category_name' => $category, // fetch all posts that are in current $category
));
while ($query->have_posts()) {
    $query->the_post();
    $mFinalArray[$category][] = get_post(get_the_ID()); // add post under current category
}

// reset loop here

}
输出如下:

Array(

 [a_category_name_example1] => array(many_posts_here_of_this_category),
 [a_category_name_example2] => array(many_posts_here_of_this_category),
)

考虑使用上面的代码,因为它可能不完全正确。

请尝试下面的答案,因为您需要在循环中进一步应用word press代码以获得适当格式的数据。在成功显示数据后,您可以根据您的具体设计从矿山代码中删除标签并设置UL/LI

$cat_args = array(
    'taxonomy'      => 'article-category',
    'orderby'       => 'menu_order',
    'order'         => 'ASC',
    'hierarchical'  => true,
    'parent'        => 0,
    'hide_empty'    => true,
    'child_of'      => 0
);
$get_categories = get_categories( $cat_args );
foreach($get_categories as $get_category){
    $ids[] =  $get_category->term_id;
}
$finalCatPostData = '';
foreach($ids as $id){
    $finalCatPostData .= '<h2>'.get_cat_name( $id ).'</h2>';
    $args = array(
    'category'         => $id,  
    'orderby'          => 'date',
    'post_type'        => 'article',
    'post_status'      => 'publish',
    'suppress_filters' => true,
    'posts_per_page' => -1,
    );
    $posts_array = get_posts( $args );
    foreach($posts_array as $post){
        $finalCatPostData .= '<p>'.$post->post_title.'</p>';
    }   
}
echo $finalCatPostData;

请尝试下面的答案,因为您需要在循环中进一步应用word press代码以获得适当格式的数据。在成功显示数据后,您可以根据您的具体设计从矿山代码中删除标签并设置UL/LI

$cat_args = array(
    'taxonomy'      => 'article-category',
    'orderby'       => 'menu_order',
    'order'         => 'ASC',
    'hierarchical'  => true,
    'parent'        => 0,
    'hide_empty'    => true,
    'child_of'      => 0
);
$get_categories = get_categories( $cat_args );
foreach($get_categories as $get_category){
    $ids[] =  $get_category->term_id;
}
$finalCatPostData = '';
foreach($ids as $id){
    $finalCatPostData .= '<h2>'.get_cat_name( $id ).'</h2>';
    $args = array(
    'category'         => $id,  
    'orderby'          => 'date',
    'post_type'        => 'article',
    'post_status'      => 'publish',
    'suppress_filters' => true,
    'posts_per_page' => -1,
    );
    $posts_array = get_posts( $args );
    foreach($posts_array as $post){
        $finalCatPostData .= '<p>'.$post->post_title.'</p>';
    }   
}
echo $finalCatPostData;

为什么不使用这个插件呢?它有一个短代码。你可以用它来打印文章根据通过的分类我不能使用插件,原因是,我正在开发一个自定义的UI元素,要求所有这些都以特定的格式显示为什么你不使用这个插件它有一个短代码。你可以使用它来根据传递的类别打印文章我不能使用插件,原因是,我正在开发一个自定义UI元素,要求所有这些都以特定的格式显示。考虑到我大约有20个类别,每个类别有10-15篇文章,我担心在循环中的WP_查询会有性能问题。我明白了,好的,你能编辑这个问题吗?我要你导出一个post数组和一个category数组。你可以用这两个做完全相同的事情来创建一个数组。在循环中包装WP_查询我担心会有性能问题,因为我大约有20个类别,每个类别有10-15篇文章。我知道了,好的,你能编辑这个问题吗,我希望你导出一个post数组和一个category数组。你可以用这两个做完全相同的事情的数组来创建一个数组。它不起作用,我也尝试了上面的代码,在我的word press中进行了测试,你能用传递的参数进行调试吗?顺便说一句,我不得不使用tax_query,因为上面的链接中提到的原因,它正在工作,谢谢你的提示,你的解决方案帮助我走上了正确的方向:-)它不工作,我也尝试了上面的代码在我的word press中测试,你能用传递参数进行调试吗?顺便说一句,我不得不使用tax_query,因为上面的链接中提到的原因,它正在工作,谢谢你的提示,你的解决方案帮助我走上了正确的方向:-)