WPMLでget_postsを使った時に現在の言語の投稿のみ表示させる
WordPressの多言語化プラグインWPMLでget_posts()を使った時に、現在の言語の投稿のみ表示したい場合は
'suppress_filters'=> false
を設定します。
例
<?php $get_events = get_posts(array( 'post_type' => 'events', 'posts_per_page' => 5, 'suppress_filters'=> false )); ?>
上記で思い通りの処理ができない時の力技。
スマートでないのでオススメしない。
<?php global $wpdb; $wp_prefix = $wpdb->prefix; $wp_icl_translations = "${wp_prefix}icl_translations"; if(defined('ICL_LANGUAGE_CODE')): $lang_code = ICL_LANGUAGE_CODE; else: $lang_code = 'ja'; endif; //今の言語のカスタム投稿「events」の投稿取得 $get_events = $wpdb->get_results( "SELECT * FROM $wpdb->posts LEFT JOIN $wp_icl_translations ON ".$wp_prefix."posts.ID = ".$wp_icl_translations.".element_id WHERE (post_type = 'events') AND post_status = 'publish' AND ".$wp_icl_translations.".language_code = '$lang_code' ORDER BY post_modified DESC limit 0,5"); if($get_events): // var_dump($get_events); foreach($get_events as $post): setup_postdata($post); //何らかの処理 endforeach; wp_reset_postdata(); endif; ?>
Comment
コメント(0)
コメントはまだありません。
コメントする
Trackback(0)