2012-03-10 18 views
0

WordPressでカスタムの投稿タイプを作成しました.1つの投稿テンプレートで、get_post_custom()関数を使用してカスタムデータを正常に取得しています。WordPressのループ内でget_post_custom()が動作しないのはなぜですか?

しかし、投稿のリストのループ内では、この関数は機能せず、空の配列が返されます。

<?php $loop = new WP_Query(array('post_type' => 'web-design', 'posts_per_page' => 10)); ?> 

<?php $i = 0; ?> 

<?php while ($loop->have_posts() && $i < 3) { $loop->the_post(); ?> 

<article class="project-link <?php echo 'num' . $i ?>"> 
    <div class="pad"> 

     <?php $project_info = get_post_custom(); ?> 

     <?php 

     foreach ($project_info as $i => $values) { 
      print "$i {\n"; 
      foreach ($values as $key => $value) { 
       print "$key => $value\n"; 
      } 
      print "}\n"; 
     } 

     ?>  

     <?php echo $project_info['url'][0]; ?> 

そして私は全然戻ってくる何も持っていない:

は、ここで私が持っているものです。

これはなぜ動作しないのですか?それは、単一の投稿テンプレートでうまく動作します、なぜループにはありませんか?

ありがとうございます!

答えて

0

のは問題がデータベースであるかのように思えます。私は、特定の投稿を削除した場合、正常に動作することに気付きました。私はまだこれらの投稿の何が間違っているかを知ることはできませんが、もし私がそれらを削除してから再作成すれば、大丈夫です。

この問題が発生した人には、あなたの投稿の一部をゴミ箱に移動し、それが機能し始めているかどうかを確認してください。

0

post_customは()あなたが必要とする特定のキー、または値を知っていれば

はあなたが使用することができます。..配列に格納多くの変数があり

<?php 

    $mykey_values = get_post_custom_values('my_key'); 
    foreach ($mykey_values as $key => $value) { 
    echo "$key => $value ('my_key')<br />"; 
    } 

?> 

または特定のポスト

<?php 

    $custom_fields = get_post_custom(72); 
    $my_custom_field = $custom_fields['my_custom_field']; 
    foreach ($my_custom_field as $key => $value) 
    echo $key . " => " . $value . "<br />"; 

?> 
+0

ありがとうございますObmerk、しかしこれは何らかの理由でループ内でまだ動作しません。何らかの理由で、空の文字列または配列を返すだけです。しかし、それは完全に単一の投稿で動作します。 – shrewdbeans

+0

ループで動作する場合よりも、単一のポストで動作する場合は問題がカスタムクエリとなる可能性があります。また、あなたの例で示したことはネストされた配列です –

+0

説明してくれてありがとう、私のカスタムクエリをテストしますか? $ loopオブジェクトでprint_r()を使用しましたが、カスタム値が返されませんでした。また、問題はfunctions.phpファイルのカスタム投稿の設定にもありますか?それとも、1回のポストショーでは大丈夫だという事実はありますか?再び私に言ったように – shrewdbeans

関連する問題