2011-12-07 11 views
1

がget_postsが一方Wordpressのget_postsは数字を受け入れますが、以下同じ変数

$args = array('post__in' => array(63,57,34,)); 

これを機能使用してワードプレスで完全に機能していないことはない:

$ids = 63,57,34,; 
    $args = array('post__in' => array($ids)); 

我々が生成するので、 2番目の方程式を使う必要がある別の方程式によって変わるかもしれませんが、3番目の結果はすべてではありません3。なぜですか?

$ids UPDATEは、一定の基準を探していますforeachから生成されます。

if($final != false){ 

      $ids .= $result->ID . ',' ; 

     } 

完全なコードはそのままです。

$proto = $_GET['p']; 
$terms = $_GET['s']; 

if($proto == 'inline') { 

    $search = get_posts('post_type=post&post_status=publish'); 

    foreach($search as $result) { 

     $title = get_the_title($result); 

     $tags = wp_get_post_tags($result->ID); 

     foreach($tags as $tag){ $tago[$result->ID].= $tag->name.',';} 

     $full = $title . ' ' . $tago[$result->ID]; 

     $final = strpos($full,$terms); 


     if($final != false){ 

      $ids .= $result->ID . ',' ; 

     } 

    } 

    echo $ids; 
    $args = array('post__in' => array($ids)); 

    $srs = get_posts($args); 

    foreach($srs as $sr) { echo $sr->post_title; 

    } 


} 
+0

後者は構文エラーの原因になります。元のコードを表示できますか? –

+0

@Pekka完全な式を追加しました –

答えて

0

post__inの値として2つの異なるものを渡しています。最初は整数の配列です。 2番目の配列は、単一の文字列を含む配列です。私はワードプレスは、あなたが最初の要素だけを取得している理由はその入力を、サニタイズするために、アレイのメンバーにintval()または類似を使用している疑いがある

$working = array(63,57,34,); 
print_r($working); 

$not_working = array('63,57,34,'); 
print_r($not_working); 

:あなたはとの違いを見ることができます。

私はあなたのループ前に配列として$idsを宣言することをお勧めしたい:

$ids = array(); 

をして使用して値を追加:あなたのループに

$ids[] = $result->ID; 

。次に$argsは次のように設定できます。

$args = array('post__in' => $ids); 
+0

お手伝いできればさらに問題があります。質問に追加 –

+0

@RobinKnight:しないでください。新しい質問を書いてください。 –

+0

@ TomalakGeret'kal私はしようとしましたが、それは私を許さないでしょう、私は自分の限界に達したと言います。おそらくあなたは私のために投稿することができます –

関連する問題