2012-01-13 8 views
1

私は、一連のカスタムフィールドを持つプライベートページを持っています。私は何をしたいのですか?これらのフィールドの数がどれだけ満たされているかを調べ、フィールドの内容に基づいてサイドバーに値を設定します。私は動作するコードブロックを持っていますが、それは常に4つのフィールドを特に検索し、そこに何もない場合は空のブロックを表示します。ここwordpress:ページ上でカスタムフィールドの配列を抽出する方法

は私が凝縮して賢くしたいよコードです:

<li class="sponsorSlot"> 
     <a href="<?php echo get_post_meta(158, 'sponsor_01_uri', true); ?>" title="<?php echo get_post_meta(158, 'sponsor_01_uriTitle', true); ?>"> 
     <img src="<?php bloginfo('stylesheet_directory'); ?>/<?php echo get_post_meta(158, 'sponsor_01_image', true); ?>"> 
     </a> 
    </li>  
    <li class="sponsorSlot"> 
     <a href="<?php echo get_post_meta(158, 'sponsor_02_uri', true); ?>" title="<?php echo get_post_meta(158, 'sponsor_02_uriTitle', true); ?>"> 
     <img src="<?php bloginfo('stylesheet_directory'); ?>/<?php echo get_post_meta(158, 'sponsor_02_image', true); ?>"> 
     </a> 
    </li>  
    <li class="sponsorSlot"> 
     <a href="<?php echo get_post_meta(158, 'sponsor_03_uri', true); ?>" title="<?php echo get_post_meta(158, 'sponsor_03_uriTitle', true); ?>"> 
     <img src="<?php bloginfo('stylesheet_directory'); ?>/<?php echo get_post_meta(158, 'sponsor_03_image', true); ?>"> 
     </a> 
    </li>  
    <li class="sponsorSlot"> 
     <a href="<?php echo get_post_meta(158, 'sponsor_04_uri', true); ?>" title="<?php echo get_post_meta(158, 'sponsor_04_uriTitle', true); ?>"> 
     <img src="<?php bloginfo('stylesheet_directory'); ?>/<?php echo get_post_meta(158, 'sponsor_04_image', true); ?>"> 
     </a> 
    </li> 

あなたは私が何をしようとしているがわかります。 1または8のエントリがあっても関係ない場合は、明示的に指定しなくてもそこに何が入っているのかはわかります。私の考えは、配列を構築し、次に必要な要素を構築するために配列をステップ実行することでした。

ありがとうございました!

WR!

+0

クイック補足:いいえ、jQuery、プラグインなし、ちょうどコードください。どうも。 WR! – WhiteRau

+0

投稿IDは常に158ですか?本質的には – Vamsi

+0

、はい。すべてのフィールドを持つページのIDです。ユーザーPOVからはアクセスできません。 – WhiteRau

答えて

1

カスタム条件の存在を確認するif条件を追加することができます。

のような何か

<?php if((get_post_meta(158, "sponsor_01_uri", true)) || (get_post_meta($post->ID, "sponsor_01_uriTitle", true))) { ?> 

することができますええget_post_meta()が、デフォルトではドキュメントごとに、それはあなたが指定したキーのすべての値の配列を返しますが、あなたはそれをオーバーライドすることにより、返された値をループ$singleFALSEを指定してください。

+0

これは右direxionに向かっている、私たちは直接、独自のカスタムフィールド名を指定せずにこれを行うことができますがかどうかを確認できるようにしたいと思います。代わりに "sponsor_01_uri"、 "sponsor_02_uri"、&cの代わりに。ページ上の「sponsor_uri」のインスタンスは4つだけです...そこからどれだけの数が存在しているかを照会し、そこからデータを取り込みます。それは理にかなっていますか? WR! – WhiteRau

+0

...二度目の読書で、これはまさにあなたが言っていることでしょうか?これを少し処理しなければなりません... WR! – WhiteRau

+0

大丈夫です。処理される。私はちょうどコーデックスを正しく読み込んでいませんでした。あなたの例は私を真っ直ぐにしてくれました。どうもありがとうございました。 :) WR! – WhiteRau

関連する問題