2014-07-13 1 views
0

이것은 하루 중 더 나은 부분을 위해 저를 괴롭혔습니다. 내 여자 친구의 요리 블로그 (당신은 그것을 볼 수 here)에 대한 새로운 category.php 템플릿 파일을 만들었습니다.워드 프레스에서 카테고리 페이지 템플릿의 카테고리 식별자를 결정하십시오.

내가 사용하는 테마 (패치 워크)에서 제공하는 기본 레이아웃이 아닌 카테고리 페이지에 대한 특정 레이아웃이 필요했습니다.

나는 주위를 둘러 보았고 결국 Wordpress PHP 함수 <?php single_cat_title($prefix, $display); ?>Wordpress Codex에 설명 된대로 사용할 수 있다는 것을 알았습니다. 요점은 Wordpress shortcode [catlist]을 사용하는 것이 었습니다. 단축 코드는 카테고리 이름 또는 카테고리 ID를 취할 수 있습니다.

나는 그럴 것이라고 생각했지만 불행히도 내 여자 친구의 블로그는 항상 single_cat_title이 동일한 가치를 반환하지 않는다는 것을 의미하는 이중 언어입니다. recipe을 영어로, recette을 불어로 반환 할 수 있으며이 중 어느 것도 [catlist]의 카테고리를 해결하는 데 사용할 수 없습니다. 그리고 이것이 이중 언어 블로그의 모범 사례라고 생각한다면 그것은 ... 같은 이름의 카테고리가있는 블로그에도 적용됩니다 (그 이유는 내가 알지 못합니다 ...)

찾을 수있는 다른 모든 방법은 모두 the_loop에만 해당하며 내 경우에는 적용되지 않습니다.

어쨌든, 나는 모든 사람들의 이익을 위해 아래의 답을 공유 할 것이라고 생각했습니다. 내가 그것을 발견했을 때, 그것은 나의 하루를 만들었다!

답변

0

현재의 객체 식별자를 검색하는 방법 (그 후, 분류 태그 될 ...) 즉, 낮은 레벨의 워드 프레스 목적 및 사용하는 것이다

$wp_query->get_queried_object_id() 

워드 프레스의 class reference에 기재된. 트릭은 속성을 제공하는 메소드 이름을 아는 것이고 Wordpress는이를 알려주지 않습니다.

가장 가까운 방법은 get_queried_object()입니다 (function reference 참조). 다음과 같이

내 페이지에 대한 최종 템플릿은 다음과 같습니다

<?php 
/** 
* The Template for displaying posts in the category view. 
* 
*/ 
get_header(); ?> 

     <div id="primary" class="site-content"> 
         <h1><?php single_cat_title("");?></h1> 
      <div id="content" role="main"> 
<?php echo do_shortcode('[catlist id='.$wp_query->get_queried_object_id().' orderby=date order=DESC excerpt=yes excerpt_size=25 thumbnail=yes numberposts=-1 template=del]'); ?>     
      </div><!-- #content --> 
     </div><!-- #primary .site-content --> 

<?php get_sidebar(); ?> 
<?php get_footer(); ?> 
관련 문제