How to finish this loop?

时间:2014-06-15 作者:user3700046

我已经问过一个问题,如何只获取属于某个分类法的父页面的子页面。一位非常有帮助的用户给了我这个答案,然而,我没有得到代码来完成循环的任何一方,这样我就可以得到:标题、特色图片和摘录。我得到的代码是:

$child_ids = $wpdb->get_col(
"SELECT ID FROM $wpdb->posts WHERE post_parent = $post->ID AND post_type = \'page\' ORDER      BY menu_order"
);

 $args = array(
\'post__in\' => $child_ids, // Only retrieve taxonomy posts that are children of this page
\'tax_query\' => array(
    array(
        \'taxonomy\' => \'top5\',
        \'field\' => \'name\',
        \'terms\' => $post->post_title
    ),
),
);
因此,如果有人能告诉我如何使用它来获取标题、摘录和特色图片,那将是非常好的,提前非常感谢!

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

我认为非常有帮助的用户给了你一个错误的答案。下面是一个我认为更好的例子:

 //The ID of the parent page, for example 4. Change to the correct ID.
 //For example, if you are in the page loop, you can use get_the_ID() to get ID of current page
 $parent_id = 4;

 //The terms that the page belongs to.
 $terms = array( \'one_term\', \'another_term\' );

 $args = array(
      \'post_type\'   => \'page\',
      \'post_parent\' => $parent_id,
      \'tax_query\'   => array(
            array(
                \'taxonomy\' => \'top5\',
                \'field\'    => \'name\',
                \'terms\'    =>  $terms
           )
       )
 );

 $query = new WP_Query( $args );

 if ( $query->have_posts() ) {

     //Start the loop
     while ( $query->have_posts() ) {

         $query->the_post();

         //Do whatever you want with the found pages. For example:
         the_title();
         if( has_post_thumbnail() ) {
             the_post_thumbnail();
     }
         the_content();

     }
     //End the loop

     wp_reset_postdata();

  } else {

    //Do something if pages have not been found

  }
注意:默认情况下,“pages”没有分类法,因此我假设您已经为“pages”帖子类型注册了“top5”分类法。另外,您说您想要获取页面的摘录,默认情况下,页面不支持摘录,因此我假设您添加了对页面的摘录支持。

结束

相关推荐

Post taxonomy from exif data

每当我发布带有特色图像的帖子时,我都想从该图像中提取exif数据,并将其作为分类的术语附加。我已经有了一个插件,可以提取相关信息,但我不知道何时何地调用wp_set_object_terms有人能给我指出正确的方向吗?