WordPress : 특정 범주에있는 게시물 만 표시하는 방법은 무엇입니까?
-
19-09-2019 - |
문제
나는 WordPress를 처음 접했지만 약 50 시간 이상의 이상한 시간을 공부하고, 시도하고, 그와 같은 느낌이 들었습니다.
그러나 내가 단순히 일할 수없는 한 가지는 페이지가 특정 카테고리의 게시물 목록을 뱉어내는 것입니다.
내 예는 다음과 같습니다. http://dev.jannisgundermann.com/zoeikin/graphic-design/typographic-posters
내가 가면 직접적으로 올바르게 작동하지만이 페이지에 나타나지 않는 게시물이 있습니다.
카테고리 ID는 '3'이고 카테고리 이름은 '타이포그래피 포스터'입니다.
타이포그래피 포스터 페이지에 대한 사용자 정의 페이지 템플릿이 다음과 같이 보입니다.
<?php
/*
Template Name: Typographic Posters
*/
?>
<?php get_header(); ?>
<?php get_sidebar(); ?>
<?php if (in_category('3')): ?>
<div class="post">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<div class="post-description">
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
</div>
<?=get_image('flutter-image');?>
</div>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
</div>
<?php endif; ?>
<?php get_footer(); ?>
이 코드를 사용하지만 페이지 만 표시하면 헤더, 사이드 바 등이 표시되지 않습니다.
누군가가 나를 도울 수 있다면이 WordPress 카테고리 필터링을 처리하는 데 도움이 될 것입니다.
읽어 주셔서 감사합니다,
Jannis
해결책
in_category
단일 페이지에서 루프 외부에서만 작동합니다. 나는 사용하는 것이 좋습니다 query_posts
이 문제를 해결하는 기능. 당신은 사용할 수 있습니다 query_posts('cat=3')
또는 query_posts('category_name=typographic-posters')
찾고있는 게시물을 얻으려면.
획득되면 일반적인 WordPress 루프를 사용 하여이 게시물에 액세스하십시오.
다른 팁
가장 쉬운 방법은 호출 된 파일을 만드는 것입니다 category-3.php
정상의 표준 코드를 사용하십시오 index.php
또는 category.php
파일. WordPress는 ID = 3 및 어린이 카테고리를 가진 카테고리에서만 게시물을 가져 오는 것을 처리합니다.
in_category는 단일 페이지에서 루프 외부에서만 작동합니다. query_posts 함수를 사용 하여이 문제를 해결하는 것이 좋습니다. query_posts ( 'cat = 3') 또는 query_posts ( 'category_name = typographic-posters')를 사용하여 원하는 게시물을 얻을 수 있습니다.
획득되면 일반적인 WordPress 루프를 사용 하여이 게시물에 액세스하십시오.
이것은 훌륭하게 작동했지만 설정> 읽기로 이동하여 게시물 페이지를 - select - 옵션으로 설정 하거나이 쿼리를 무시하고 카테고리에 관계없이 모든 최근 게시물을 덤프합니다.
아래 메소드를 사용하여 카테고리 ID별로 포스트를 필터링했습니다.
query_posts('cat=1&showposts=3');
if (have_posts()) : while (have_posts()) :
// if(1) {
//echo the_category_ID();
the_post();
/**
* The default post formatting from the post.php template file will be used.
* If you want to customize the post formatting for your homepage:
*
* - Create a new file: post-homepage.php
* - Copy/Paste the content of post.php to post-homepage.php
* - Edit and customize the post-homepage.php file for your needs.
*
* Learn more about the get_template_part() function: http://codex.wordpress.org/Function_Reference/get_template_part
*/
$is_post_wrap++;
if($is_post_wrap == '1') {
?><div class="post-wrap clearfix"><?php
}
get_template_part('post', 'homepage');
if($is_post_wrap == '3') {
$is_post_wrap = 0;
?></div><?php
}
endwhile;
else :
get_template_part('post', 'noresults');
endif;
루프 전에 간단히 추가하십시오.
<?php query_posts="cat=3&showposts=5">
이렇게하면 루프가 카테고리 3 (CAT = 3)에서 5 개의 게시물 (showposts = 5)을 표시하도록합니다.
나는 두 번째 Eimantas의 제안을 할 것입니다. 그만큼 템플릿 계층 범주 -3.php를 사용하여 해당 범주에 게시물을 표시합니다. 일반적으로 테마의 index.php 또는 category.php를 카테고리 -3.php에 복사하고 필요한 사용자 정의에 맞게 해당 템플릿을 조정하면됩니다. 또한 카테고리 템플릿은 게시물의 페이지 매김을 더 잘 지원합니다.
그러나 해당 게시물을 표시하려면 페이지를 고수 해야하는 경우 게시물 예제의 페이지.
http://codex.wordpress.org/template_tags/query_posts
이 답변이 어디에서 왔는지 알 수 있습니다 ... query_posts에서도 할 수있는 훨씬 더 흥미로운 기능이 있습니다.
이 플러그인은 코드를 통과하지 않고 표시된 카테고리를 변경할 수 있으려면 도움이 될 수 있습니다.http://wordpress.org/extend/plugins/advanced-category-excluder/
당신의 생각을 공유해 주셔서 감사합니다. 일반적으로 테마의 index.php 또는 category.php를 카테고리 -3.php에 복사하고 필요한 사용자 정의에 맞게 해당 템플릿을 조정할 수 있습니다.