web-dev-qa-db-ger.com

Benutzerdefinierten Beitrag auf der Startseite basierend auf einer Metaboxauswahl anzeigen

Ich versuche, einen Beitrag auf meiner Homepage basierend auf einer Auswahl anzuzeigen. Was ich meine ist im Backend Ich habe einen benutzerdefinierten Beitrag, der eine Metabox mit der Bezeichnung "Zu Hause zuweisen" mit einem Dropdown-Menü mit der Auswahl "Ja" oder "Nein" hat. Was ich versuche, ist, wenn ein benutzerdefinierter Beitrag die Auswahl "Ja" hat wird auf der Homepage angezeigt. Wenn eine Auswahl Nein lautet, wird sie nicht angezeigt.

Mit dem folgenden Code versuche ich, meinen Beitrag anzurufen. Der Beitragstyp und der Metaschlüssel sind beide korrekt, aber wenn ich versuche, meinen Beitrag anzuzeigen, erhalte ich ein Array.

startseite

 <?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; ?>

Ich weiß, dass dies möglicherweise nicht sehr hilfreich ist, da es sich um eine kleine Menge Code handelt, aber ich verwende dies, um mein Dropdown anzuzeigen. Dieser Code ist ein kleiner Ausschnitt aus dem vollständigen benutzerdefinierten Beitragstyp, den ich verwende.

Der Post-Typ, der für dieses Snippet verwendet wird, ist zB und der Metaschlüssel, der allen meinen Präfix-IDs zugewiesen wird, ist 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

Ich sehe so aus, als würdest du die benutzerdefinierten Meta-Boxen und Felder von Github Repo verwenden, was eine großartige Bibliothek ist. Ich denke, das Wichtigste, was Sie tun müssen, ist eine neue WP_Query. Unten sehen Sie ein Beispiel dafür in Aktion. Der einzige Unterschied besteht darin, dass ich in meinem Beispiel das Kontrollkästchen "Der Homepage zuweisen" für den benutzerdefinierten Beitragstyp aktiviert habe.

<?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 );
?>

Von dort aus können Sie Ihre benutzerdefinierte Schleife durchlaufen und nach Bedarf Metadaten abrufen.

2
mrbobbybryant