Skip to content

Instantly share code, notes, and snippets.

@timneutkens
Created July 11, 2016 12:57
Show Gist options
  • Save timneutkens/a1bdfb4ec778cbab92dd6820adfdf7ed to your computer and use it in GitHub Desktop.
Save timneutkens/a1bdfb4ec778cbab92dd6820adfdf7ed to your computer and use it in GitHub Desktop.
WPML wp_count_posts fix. Taken from http://pastebin.com/E5nMcF25
function count_posts($language_code = '', $post_type = 'post', $post_status = 'publish'){
global $sitepress, $wpdb;
//get default language code
$default_language_code = $sitepress->get_default_language();
//adjust post type to format WPML uses
switch($post_type){
case 'page':
$post_type = 'post_page';
break;
case 'post':
$post_type = 'post_post';
break;
}
//are we dealing with originals or translations?
$slc_param = $sitepress->get_default_language() == $language_code ? "IS NULL" : "= '{$default_language_code}'";
$query = "SELECT COUNT( {$wpdb->prefix}posts.ID )
FROM {$wpdb->prefix}posts
LEFT JOIN {$wpdb->prefix}icl_translations ON {$wpdb->prefix}posts.ID = {$wpdb->prefix}icl_translations.element_id
WHERE {$wpdb->prefix}icl_translations.language_code = '{$language_code}'
AND {$wpdb->prefix}icl_translations.source_language_code $slc_param
AND {$wpdb->prefix}icl_translations.element_type = '{$post_type}'
AND {$wpdb->prefix}posts.post_status = '$post_status'";
return $wpdb->get_var( $query );
}
@timneutkens
Copy link
Author

Usage: count_posts(ICL_LANGUAGE_CODE, 'post_<custom post type here>')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment