Отображать пользовательскую публикацию на домашней странице на основе выбора метабокса


Я пытаюсь отобразить сообщение на своей домашней странице на основе выбора. Я имею в виду, что в бэкэнде у меня есть пользовательское сообщение, в котором есть метабокс с надписью "Назначить на дом" с выпадающим списком, в котором есть выбор "Да" или "Нет". То, что я пытаюсь сделать, - это когда пользовательское сообщение имеет выбор "Да", оно будет отображаться на домашней странице. Когда выбор говорит "Нет", он не будет отображаться.

Приведенный ниже код - это то, что я пытаюсь использовать для вызова своего поста. тип записи и мета-ключ оба верны, но когда я пытаюсь отобразить свой пост, я получаю массив.

Домашняя страница

 <?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 , а мета-ключ, который присваивается всему моему идентификатору префикса, - 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',
 ),
Author: user3756781, 2014-12-17

2 answers

Похоже, вы используете пользовательские мета-поля и поля репозитория 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
Author: mrbobbybryant, 2014-12-18 02:03:31
<?php
   $args = array(
   'post_type'  => 'product', /* your Custom post slag */
   'meta_key'   => '_wla_homepage_slider_checkbox',
   'meta_value' => 'on',
   'posts_per_page' => 15, 
   'no_found_rows' => true
   );
 $query= new WP_Query( $args );
?>
 -1
Author: Amarendra Kumar, 2016-07-21 07:41:44