web-dev-qa-db-ja.com

同じカテゴリのget_previous_post

私は2つのカテゴリー、1と2に投稿があります。

前の記事を2つのカテゴリ、1で取得したい2。

get_previous_post(true);

そのコードで、私はカテゴリ1または2の前の投稿を得ています。

何か案が?

1
fsinisi90

get_previous_postget_adjacent_post() これにはたくさんのフィルタフックがありますが、もっと簡単な方法はあなた自身の関数を作ることです。

// Create a new filtering function that will add our where clause to the query
function date_filter_where( $where = '' ) {
    global $post;
    $where .= " AND post_date >= '".$post->post_date."'";
    return $where;
}

//then create your own get previous post function which will take an array of categories eg: 
// $cats = array('1','2');
function my_get_previous_post($cats){
    global $post;
    $temp = $post;
    $args = array(
        'posts_per_page' => 1,
        'post_type' => 'post',
        'post_status' => 'publish',
        'category__and' => $cats
    );
    add_filter( 'posts_where','date_filter_where' );
    $q = new WP_Query($args);
    remove_filter( 'posts_where','date_filter_where' );
    while ($q->have_posts()){
        $q->the_post;
        echo '<a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a>';
    }
    $post = $temp;
    wp_reset_query();
}
1
Bainternet