2013-04-30 1 views
1

을 보여 가져올 수 없습니다 그리고 내가 필터링하는 필터를 만들려고 해요는 범주 내가 TwentyTwelve 테마를하고 있어요

get_header(); ?> 

<div id="primary" class="site-content"> 
    <div id="content" role="main" class="clearfix"> 
     <?php 
      $terms = get_the_category(); 
      $count = count($terms); 
      echo '<ul id="post-filter">'; 
       echo '<li><a href="#all" title="">All</a></li>'; 
       if ($count > 0){ 

        foreach ($terms as $term) { 

         $termname = strtolower($term->name); 
         $termname = str_replace(' ', '-', $termname); 
         echo '<li><a href="#'.$termname.'" title="" rel="'.$termname.'">'.$term->name.'</a></li>'; 
        } 
      } 
      echo "</ul>"; 
     ?> 
     <div id="mwrapper"> 

    <?php query_posts('cat=-6,-7'); ?> 
    <?php if (have_posts()) : ?> 

     <?php /* Start the Loop */ ?> 
     <?php while (have_posts()) : the_post(); ?> 
      <div class="box">.... 

루프 전에이 조각을 추가하여 인덱스 파일을 수정 한 블로그 게시물을 통해 데모처럼 here. 현재 저는 5 개의 카테고리가 있습니다 : 에이젼시 노트, 디자인 노트, 추천, 유머, 분류되지 않은 카테고리. 카테고리 당 적어도 하나의 게시물이 있지만 디자인 노트를 가져 오는 것 같습니다.

또한 get_the_category();wp_list_categories();으로 변경하려고 시도했지만 모든 카테고리가 표시되었습니다.

Source 나는 스 니펫을 받고 있습니다.

+0

우선,'strtolower()'와'str_replace()'대신에'$ term-> slug'를 사용하는 것이 낫습니다. – doublesharp

답변

2

get_the_category() 전체 WP 설치의 범주 목록이 아닌 현재 게시물의 범주/정보를 표시합니다.

<?php 
    $categories=get_categories(array('order' => 'ASC', 'orderby' => 'name')); 
    $count = count($terms); 
    [...] 
+0

또한 OP의 예처럼'query_posts()'가 필요할 것입니다. – doublesharp

+0

그게 효과가 있어요. 넌 최고야, 고마워! –

0

첫째로, 당신은 모든 범주를 얻으려면 :

나는 당신이 찾고있는 것은 get_categories() 기능 (http://codex.wordpress.org/Function_Reference/get_categories 분과에서 여기에 대한 추가 정보를 원하시면)라고 생각합니다. get_the_category()는 이것을하지 않습니다. 대신 get_categories()를 원할 수도 있습니다.

$terms = get_categories(); 
$count = count($terms); 
echo '<ul id="post-filter">'; 
    echo '<li><a href="#all" title="">All</a></li>'; 
    if ($count > 0) { 
    foreach ($terms as $term) { 
     echo '<li><a href="#" data-slug="'.$term->slug.'">'.$term->name.'</a></li>'; 
    } 
    } 
echo "</ul>"; 

또한 몇 가지 수정 사항을 만들었습니다. 해시 및 rel 속성을 제거했습니다. 대신 데이터 속성을 사용할 수 있습니다. 이는 의미 론적입니다.

다음 부분은 귀하의 게시물 HTML에 따라 달라집니다,하지만 난 그들이에있어 post의 클래스와 카테고리를 가지고 있으리라 믿고있어 그들이 할 경우, jQuery를 함께 같은 것을 할 수 있습니다.

$('a', '#post-filter').on('click', function(e) { 
    e.preventDefault(); 

    $('.post').hide().filter('.' + $(this).attr('data-slug')).show(); 
}); 

모든 게시물을 숨기고 선택한 카테고리에있는 게시물 만 표시합니다. 나는 당신에게 애니메이션을 분류하기 위해 그것을 남겨 둘 것이다.

관련 문제