htdat

WPML - Count posts

Nov 20th, 2014
757
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function count_posts($language_code = '', $post_type = 'post', $post_status = 'puplish'){
  2.  
  3.     global $sitepress, $wpdb;
  4.  
  5.     //get default language code
  6.     $default_language_code = $sitepress->get_default_language();
  7.  
  8.     //adjust post type to format WPML uses
  9.     switch($post_type){
  10.         case 'page':
  11.             $post_type = 'post_page';
  12.         break;     
  13.         case 'post':
  14.             $post_type = 'post_post';
  15.         break;
  16.     }
  17.    
  18.     //are we dealing with originals or translations?
  19.     $slc_param = $sitepress->get_default_language() == $language_code ? "IS NULL" : "= '{$default_language_code}'";
  20.  
  21.     $query = "SELECT COUNT( {$wpdb->prefix}posts.ID )
  22.                 FROM {$wpdb->prefix}posts
  23.                 LEFT JOIN {$wpdb->prefix}icl_translations ON {$wpdb->prefix}posts.ID = {$wpdb->prefix}icl_translations.element_id
  24.                 WHERE {$wpdb->prefix}icl_translations.language_code = '{$language_code}'
  25.                 AND {$wpdb->prefix}icl_translations.source_language_code $slc_param
  26.                 AND {$wpdb->prefix}icl_translations.element_type = '{$post_type}'
  27.                 AND {$wpdb->prefix}posts.post_status = '$post_status'";
  28.  
  29. return $wpdb->get_var( $query );
  30. }
Advertisement
Add Comment
Please, Sign In to add comment