मैं सप्ताह के दिनों, सोम-रविवार के एसीएफ चयन (एकाधिक) के आधार पर वापसी के लिए एक पोस्ट प्रकार प्राप्त करने का प्रयास कर रहा हूं। मैंने एसीएफ चयन कुंजी (show_days) और वर्तमान तिथि दोनों के संबंध के साथ मेटा क्वेरी सेट अप की है। Var_dump दिखा रहा है कि दो सरणियाँ एक दूसरे से तुलना कर रही हैं, लेकिन फिर भी शो (पोस्ट प्रकार) नहीं दिखा रही हैं।

<?php

      $date = date('l');
      $shows = get_field('station_shows', false, false);
      $query = new WP_Query ( array(
        'post_type'       => 'shows',
        'posts_per_page'  => 1,
        'post__in'        => $shows,
        'post_status'     => 'publish',
        'meta_query' => array(
            'relation' => 'AND',

           array (
                       'key'           => 'show_days',
                       'value'     => array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'),
                       'compare'  => 'IN',
                     ),
           array (
                       'key'       => 'date',
                       'value'     => $date,
                       'compare'   => '=',
                       'type'      => 'DATE',
                     ), 

            )));
       if ( $query->have_posts() ) { while( $query->have_posts() ) {
       $query->the_post();
       echo '<div class="onAir"><h3>Currently On Air: ';
       the_title();
       if (get_field('dj', $query->ID)) {
                 $dj = get_field('dj');
                 echo ' w/ ';
              echo $dj;
          }
           echo '</h3></div>';

          } wp_reset_postdata();
        }

 ?>

मुझे नहीं पता कि डेटाबेस मेटा मान संगत नहीं है। मैंने सरणी को unserialize() करने का भी प्रयास किया है, लेकिन यह अभी भी वही सरणी मान देता है। किसी भी सहायता की सराहना की जाएगी। शुक्रिया!

0
EdgarAlexPoe 14 अप्रैल 2020, 17:13

1 उत्तर

सबसे बढ़िया उत्तर

ठीक है मैंने इसे समझ लिया। यह क्वेरी एक समय क्वेरी के संयोजन के साथ थी, इसलिए मैं पूरा कोड डाल रहा हूं। यह वर्तमान समय की तुलना दो कस्टम फ़ील्ड (समय सीमा) से कर रहा है और कौन से दिन चेक मार्क (चेकबॉक्स) हैं। तो अगर यह मंगलवार को शाम 4 बजे है, तो यह केवल दिखाएगा कि इसकी समय सीमा 4 बजे है और यदि मंगलवार को चेक मार्क किया गया है। इसके अलावा, इसका एक संबंध क्षेत्र है, जहां मैं कुछ रेडियो स्टेशनों को शो असाइन कर सकता हूं। तो रेडियो स्टेशन पोस्ट टाइप पेज पर, दिन के समय के आधार पर ऑन एयर फंक्शन दिखाई देगा!

 <?php
      $time = current_time('H:i:s');
      $date = strftime("%u", time());
      $shows = get_field('station_shows', false, false);
      $query = new WP_Query ( array(
        'post_type'       => 'shows',
        'posts_per_page'  => 1,
        'post__in'        => $shows,
        'post_status'     => 'publish',
        'orderby'         => 'meta_value',
        'meta_key'        => 'show_days',
        'meta_query' => array(
            'relation' => 'AND',
        array(
                  'key'       => 'start_time',
                  'value'     => $time,
                  'compare'   => '<=',
                  'type'      => 'TIME',
            ),
        array(
                  'value'     => $time,
                  'key'       => 'end_time',
                  'compare'   => '>=',
                  'type'      => 'TIME',
            ),


       ))

        );
        $days = the_field('show_days');
      if ($query->have_posts()  && $days = $date  )  { while( $query->have_posts() ) {
        $query->the_post();

        echo '<div class="onAir"><h3>Currently <span>On Air</span> : ';
        the_title();
           echo '</h3></div>';

   }
   wp_reset_postdata();
  }
 ?>
0
EdgarAlexPoe 21 अप्रैल 2020, 22:07