2015-10-17 94 views
1

我试图创建一个函数来用事件填充ajax日历。 我在我的wordpress数据库中查询自定义字段的日期(格式为Ymd)。按值排序查询的结果

 $metakey2 = 'jour'; 
     $jours = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey2)); 
     if ($jours) { 
      $years = substr($jours, 0, 4); // OUTPUT YEAR FROM DATE 
      $months = substr($jours, 5, 2); // OUTPUT MONTH FROM DATE 
      $days = substr($jours, 7, 2); // OUTPUT DAY FROM DATE 

       foreach $years as $year { 
        foreach $months as $month { 

         if ($y == $year AND $m == $month) { 
          $events = array(
           foreach $days as $day { 
            $day => array(
             0 => array(
              "0" => "Lorem ipsum dolor 111", 
             ) 
            ); 
           } 
          ); 
         } 
        } 
       } 
     } 

    ` 

我绝对不是专家,我一直在努力使这项工作了几个小时,现在...有人能指出我朝着正确的方向吗? 谢谢 Manue

+0

您是否使用custom_post?你查询什么类型的帖子来获取post_meta? 你能解释它是如何工作的吗? – Nozifel

+0

我使用来自woocommerce的产品与自定义字段。对于每个产品,我都会在自定义字段中输入日期。我需要的是在日历中输出这些产品,因此是阵列。 – Tiwelle

回答

0
$metakey2 = 'jour'; 
$jours = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey2)); 

// Chaeck the data returned isn't null, blank, 0-length array, etc. 
if (!empty($jours)) { 
    // Initialize events array 
    $events = array(); 

    // Loop through the data 
    foreach ($jours as $jour) { 
     $year = substr($jour, 0, 4); // OUTPUT YEAR FROM DATE 
     $month = substr($jour, 5, 2); // OUTPUT MONTH FROM DATE 
     $day = substr($jour, 7, 2); // OUTPUT DAY FROM DATE 

     // PROCESS YOUR DATA HERE 
     ... 
    } 
} 

的关键是空管检查后foreach循环。你需要循环从数据库返回的数据作为数组。