web-dev-qa-db-ja.com

post__は自分のIDのリストを受け取らない

banner_id_listという名前のページに カスタムフィールド があります。

私はtop_bannerと呼ばれる カスタム投稿タイプ を持っています。いくつかのバナーを追加し、IDを書き留めてからページに戻り、banner_id_listカスタムフィールドにIDのカンマ区切りのリストを追加します。

私のテンプレートでは、計画は get_post_meta() を使って現在の投稿メタをチェックすることです。これで取得できるIDのリストが作成され、post__in = array()を使用してget_posts()で使用できるようになります( post__in を参照)。

今すぐコードを見て、私はここで何かが欠けていますが、私はこれで少し初心者です。

// get the banner_id_list based on the meta custom field for this page
$banner_id_list = get_post_meta($post->ID, 'banner_id_list', true);

予期したデータが表示されていることをダンプすると、カスタムフィールドに入力したIDのリストが表示されます。

今私の質問のために:

$args = array(
    'post_type' => 'top_banner',
    'post_status' => 'publish',
    'numberposts' => -1,        
    'order' => ASC,
    'orderby' => menu_order,
    'post__in' => array($banner_id_list)
 ); 

 $banners = get_posts($args);

しかし、ここで$banner_id_listを使うことに関してファンキーなことがあります。それはただ一つの記録を得ているだけです。しかし、その変数の代わりに手動で値を入力しても、正しく機能します。

私はそれが私が欠けている単純な/基本的なものだと思います、誰かが助けることができると思います!

1
jyoseph

$banner_id_listがカンマ区切りのリストを保持している場合、それを配列の代わりに配列に変換します。

array($banner_id_list)

あなたがする必要があります

explode(',', $banner_id_list)
2
Rarst