web-dev-qa-db-ja.com

メタボックス選択に基づいてホームページにカスタム投稿を表示する

選択に基づいて自分のホームページに投稿を表示しようとしています。バックエンドにあることを意味する[はい]または[いいえ]を選択したドロップダウン付きの[ホームに割り当て]というメタボックスを持つカスタム投稿があります。カスタム投稿の選択が[はい]の場合ホームページに表示されます。選択範囲に「いいえ」と表示されている場合は表示されません。

以下のコードは私が私の投稿を呼び出すために使用しようとしているものです。投稿タイプとメタキーはどちらも正しいですが、投稿を表示しようとすると配列が得られます。

ホームページ

 <?php function posts_draft($meta_values) {
    $args_draft = array(
      'numberposts'   => 3,
      'post_type'     => 'fe', // set you custom post type
      'meta_key'      => '_cmb_homeDisplay',
      'meta_value'    => $meta_values,
    );
     $my_posts_draft = get_posts( $args_draft ); 
     $posts_draft = get_posts($my_posts_draft);
       return $posts_draft;
     }
     {
      echo posts_draft('yes');}
 ?>

  <?php if ( $fleet->have_posts() ) : while ( $fleet->have_posts() ) : $fleet->the_post(); ?>     
    <div class="fleetBox">
    <img src="<?php echo get_post_meta($post->ID, "_cmb_limoThumbnail", true); ?>" />
       <ul>
            <li><h3><?php the_title( '' ); ?></h3></li>
            <li><h4>Luxury <?php echo get_post_meta($post->ID, '_cmb_limo_select', true); ?></h4></li>
            <li><a href="<?php echo get_permalink(); ?>">More Details</a></li>
        </ul>
    </div>
 <?php endwhile; endif; ?>

私はこれがそれほど役に立ちそうでないかもしれないことを知っています、それはそれが微量のコードであるが、これは私が私のドロップダウンを表示するために使っているものです。このコードは、私が使用しているフルカスタム投稿タイプの小さな断片です。

このスニペットに使用されている投稿タイプはfeで、私のすべてのプレフィックスIDに割り当てられるメタキーはcmbです。

  array(
    'name'    => 'Display Home',
    'desc'    => 'Select an option',
    'id'      => $prefix . 'homeDisplay',
    'type'    => 'select',
    'options' => array(
       'custom' => __( 'Select...', 'cmb' ),
       'standard'   => __( 'Yes', 'cmb' ),
       'none'     => __( 'No', 'cmb' ),
 ),
       'default' => 'custom',
 ),
2
user3756781

私はあなたが素晴らしいライブラリであるカスタムメタボックスとフィールドgithubリポジトリを使っているようです。私があなたがする必要がある主なことは新しいWP_Queryであると思います。以下はその実例です。唯一の違いは、私の例では「私はホームページに割り当て」をカスタム投稿タイプのチェックボックスにしたことです。

<?php
   $args = array(
   'post_type'  => 'testimonial',
   'meta_key'   => '_wla_homepage_slider_checkbox',
   'meta_value' => 'on',
   'post_per_page' => 100, /* add a reasonable max # rows */
   'no_found_rows' => true, /* don't generate a count as part of query, unless you need it. */
   );
 $testimonials = new WP_Query( $args );
?>

そこからあなたはあなたのカスタムループを通り抜け、必要に応じてメタデータを引き出すことができます。

2
mrbobbybryant