2010-12-01 14 views
0

で特定の記事を取得WordPressは私がやっている、今の任意の順序

  1. ポスト3 'post_type' => 'post'のですが、それが選択されません。しかし、私はそれが欲しい! 'post_type' => 'page'を除外した場合、投稿3のみが選択されます( 'post_type' => 'post'と仮定する必要があるため)。
  2. order the posts arbitrarily by their idsになりたいです。

    SELECT * FROM wp_posts WHERE ID IN (1, 3, 2, 9, 7) 
    ORDER BY FIND_IN_SET(ID, '1,3,2,9,7'); 
    

をしかし、どのように私はWordPressでこれを行う必要があります:私はどのようにMySQLを使用することを知っていたならば、私は何ができますか?

答えて

0
  1. かわうそのに役立ちます#wordpress IRCチャンネルは "post_typeは値の配列を取る"と私に知らせました。

  2. だから、私は次のようでした:

    $post_ids = array(1 => 0, 3 => 1, 2 => 2, 9 => 3, 7 => 4); 
    $posts = get_posts(array('post_type' => array('post', 'page'), 
             'post__in' => array_keys($post_ids))); 
    $ordered_posts = array(0,0,0,0,0); // size of five; keeps order 
    foreach ($posts as $p) { 
        setup_postdata($p); 
        $ordered_posts[$post_ids[$p->ID]] = array(
        'permalink' => get_permalink($p->ID), 
        'title' => $p->post_title, 
        'excerpt' => get_the_excerpt(), 
        'date' => date('F j, Y', strtotime($p->post_date))); 
    } 
    
1

まずそのIDによって任意のすべての投稿をフェッチして、あなたはこの方法で行うことができ、すべての記事

をループ: -

$posts=$wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE ID IN (1, 3, 2, 9, 7) 
ORDER BY FIND_IN_SET(ID, '1,3,2,9,7')"); 
$count=count($posts); 
for ($counter=0 ; $counter < $count; $counter++) 
{ 
    $post=get_post($posts[$counter]->ID, $output); 
    //do your stuffs with posts 
} 

希望を、これは

+0

これはうまくいくが、過剰なSQLクエリを実行していると思う。 AFAIK、 'get_post'はSQLクエリを行います。つまり、最初の行を '$ order => array(1,3,2,9,7)'に置き換えることができます。しかし、あなたは依然として、各投稿ごとに1つずつ、5つのSQLクエリを実行しています。また、この&ほとんどのケースでは、 'foreach'はより速く&クリーンです。この[回答](http://stackoverflow.com/questions/4329800/wordpress-get-specific-posts-in-arbitrary-order/4337226#4337226)を参照してください。 – ma11hew28

0

this threadによると、あなたはこのコードを使用して、古典的なワードプレスを使用することができることから、私は次のようにも3を投稿選択ことがわかりましたループ:

$args = array( 
'post_type'=>'page', 
    'orderby'=>'menu_order', 
    'order'=>'ASC' 
); 
query_posts($args); 
+0

これはお勧めしますが、この場合はすべてのページではなくメニュー順とは違うと思います。 – ma11hew28

関連する問題