source

WPML: wp_query()는 현재 게시물이 아닌 모든 언어의 게시물을 반환합니다.

factcode 2023. 10. 31. 22:55
반응형

WPML: wp_query()는 현재 게시물이 아닌 모든 언어의 게시물을 반환합니다.

프랑스어 버전의 페이지에서 사용하든 영어 버전의 페이지에서 사용하든 wp_query()는 사용자 지정 게시물 유형을 현재 언어뿐만 아니라 모든 언어로 반환합니다.Get_posts()도 같은 작업을 수행합니다.

프랑스어로 내 페이지를 방문할 때, 나는 그들이 현재 언어로만 CPT를 돌려주길 원합니다.그것을 어떻게 할 것인가요?

get_posts()를 사용하는 경우 suppress_filtersfalse로 설정합니다.

$myPosts = get_posts(array(
    'suppress_filters' => false
));

http://codex.wordpress.org/Function_Reference/get_posts#Parameters

그게 내가 WPML을 사용해서 특정 언어에 대한 게시물을 가져오는 가장 좋은 방법입니다.

제 경우에는 특정 언어의 제목으로 게시물을 찾고 게시물의 ID를 반환해야 합니다.

$lang='en';
$title='The title you are searching!';

    function getWpIdByTitle($title, $lang){
        global $sitepress;
        // WPML Super power language switcher...
        $sitepress->switch_lang( $lang );
        $args = array(
          'title'        => $title,
          'post_type'   => 'your-post-type', // Default: post
          'post_status' => 'publish',
          'suppress_filters' => false,
          'numberposts' => 1
        );
        $wp_query = new WP_Query( $args );
        return $wp_query->post->ID;
    }

페치 결과로 $wp_query->post를 사용하고 제목, 내용 등의 에코를 수행할 수 있습니다.

이런 식으로 당신이 사용할 필요가 없습니다.

do_action( 'wpml_set_element_language_details', $set_language_args );

당신의 언어 게시물을 연결하기 위해, 둘 다.

icl_object_id(1,'post',false,ICL_LANGUAGE_CODE);

특정 언어로 된 게시물의 ID를 얻는 것입니다.

언급URL : https://stackoverflow.com/questions/28844195/wpml-wp-query-returns-posts-in-all-languages-rather-than-just-current-one

반응형