WP_Query를 사용한 페이지 템플릿 쿼리


답변:


23

이것을 시도하십시오 ... 템플릿 이름이 'my_template.php'라고 가정하면,

$query = new WP_Query(
    array(
        'post_type' => 'page',
        'meta_key' => '_wp_page_template',
        'meta_value' => 'my_template.php'
    )
);
//Down goes the loop...

get_posts 를 사용 하거나 쿼리 게시물 을 수정 하여 작업을 완료 할 수도 있습니다 . 이 두 함수는 WP_Query 와 동일한 매개 변수를 사용합니다 .


20

틀린 예 : 워드 프레스 3 기준으로 다음과 비슷한 것이 필요합니다.

$args = array(
    'post_type'  => 'page', 
    'meta_query' => array( 
        array(
            'key'   => '_wp_page_template', 
            'value' => 'my_template.php'
        )
    )
);

감사합니다!! 이 페이지를 너무 빨리 감추고 허용 된 답변을 사용했습니다. 이거 야. 다른 사람을 위해, 배열 내부의 배열 내부 배열을 주목하십시오 ...
Jeremy Carlson

3
여기서 유일한 차이점은 post_type입니다. 그렇지 않으면 meta_query단일 사용자 정의 키 / 값 쌍에 대한 배열이 필요하지 않습니다 .
Rutwick Gangurde

물론 메타 쿼리가 필요합니다. 그와 함께 "인라인"이 될 수를 제외시켰다 meta_keymeta_value또는 여러 조건을 포함 할 수있는 일반 배열과 함께.
막심 Culea


0

누군가가 잘못 게시물을 올리지 않으면 템플릿 이름이 잘못되었을 수 있습니다. PHP 파일 이름과 템플릿 이름을 시도했지만 작동하지 않았습니다. 그런 다음 페이지 편집기에서 템플릿을 선택하는 템플릿 선택 상자를 검사하기로 결정했습니다. 나는 이것을 찾았다:

<option value="templates-map/component-tutorial-1.php" 
 selected="selected">Tutorial -1</option>

나는 그것을 사용 templates-map/component-tutorial-1.php했다.


0

다른 폴더 안에 템플릿이있는 경우 :

$args = array(
    'post_type' => 'page', //it is a Page right?
    'post_status' => 'publish',   
    'meta_query' => array(
        array(
            'key' => '_wp_page_template',
            'value' => 'page-templates/template-name.php', // folder + template name as stored in the dB
        )
    )
);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.