Wordpress过滤帖子在显示之前

时间:2016-04-05 07:09:46

标签: wordpress filter

目前所有帖子都按类别列出, 我需要通过元键过滤列表。我使用过滤器(' posts_where')但所有查询都已更改。 我需要在正在生成的现有sql中添加WHERE条件。

1 个答案:

答案 0 :(得分:0)

function get_filtered_post( $args, $meta, $value ){
 $posts = get_posts(  $args );
 $ids = array();
 foreach( $posts as $post ){
    $id = $post->ID;
    if( get_post_meta( $id, $meta, true ) == $value ){
       $ids[] = $id;
    }
 }
 return $ids;
}

$args = array( 'post_type' => 'post', 'posts_per_page' => -1 );
$IDofPost = get_filtered_post( $args, 'my-meta-key', 'the-metas-value' );

foreach( $IDofPost as $id ){
  echo get_the_title( $id );
}

希望这个功能会有所帮助。它返回带有给定后元值的post id。