Created
July 11, 2016 12:57
-
-
Save timneutkens/a1bdfb4ec778cbab92dd6820adfdf7ed to your computer and use it in GitHub Desktop.
WPML wp_count_posts fix. Taken from http://pastebin.com/E5nMcF25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 ); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Usage:
count_posts(ICL_LANGUAGE_CODE, 'post_<custom post type here>')