Support

Account

Home Forums Add-ons Flexible Content Field See how many times each layout is used in all pages Reply To: See how many times each layout is used in all pages

  • I would not try to do a loop over that many posts and fields, more then likely it would simply time out. I would do a query directly on the db to get what I want.

    
    global $wpdb;
    /* 
      the following does not use $wpdb->prepare()
      when I'm doing queries like this I am in control of all values
      and I make sure that everything is correct
    
      also, there is not "JOIN" because there is no difference in performance
      between my way to join tables and the """Right Way"""
    */
    global $wpdb;
    $query = 'SELECT meta_value 
              FROM '.$wpdb->postmeta.' pm, '.$wpdb->posts.' p
              WHERE pm.meta_key = "{FLEX FIELD NAME HERE}"
                AND pm.post_id = p.ID
                AND p.post_status = "publish"';
    $values = $wpdb->query($query);
    $counts = array();
    if ($values) {
      foreach ($values as $value) {
        $value = maybe_unserialize($value['meta_value']);
        if (!empty($value)) {
          foreach ($value as $layout) {
            if (!isset($counts[$layout])) {
              $counts[$layout] = 0;
            }
            $counts[$layout]++;
          }
        }
      }
    }
    echo '<pre>'; print_r($counts); echo '</pre>';