워드 프레스 사용자 지정 게시 유형 범주
안녕하세요. 워드프레스에서 맞춤형 포스트 타입을 사용하고 있습니다.이 사용자 지정 게시물 유형을 다음과 같이 등록합니다.
register_post_type("lifestream", array(
'label' => 'Lifestream',
'public' => true,
'hierarchical' => true,
'menu_position' => 5,
'supports' => array('title','editor','author','thumbnail','comments','custom-fields'),
'taxonomies' => array('category','post_tag'),
'query_var' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'caller_get_posts' => 1
));
register_taxonomy_for_object_type('category', 'lifestream');
register_taxonomy_for_object_type('post_tag', 'lifestream');
테마(루프 템플릿)에서는 다음 매개 변수와 함께 query_posts()를 사용하기 위해 게시물과 사용자 지정 게시물 유형을 결합합니다.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => array('post', 'lifestream'),
'paged' => $paged,
'cat' => $wp_query->get('cat'),
'tag' => $wp_query->get('tag'),
'year' => $wp_query->get('year'),
'monthnum' => $wp_query->get('monthnum'),
'post_status' => 'publish',
'showposts' => 3
);
query_posts($args);
# the loop
while ( have_posts() ) : the_post();
# markup
endwhile;
if($wp_query->max_num_pages > 1):
# next_posts_link / previous_posts_link
endif;
wp_reset_query();
지금까지 잘 되고 있습니다.그런데 카테고리와 태그 페이지에 문제가 생겼습니다.제가 1면에 전화하면 모든 것이 문제가 없고 페이지를 통해 정확한 결과를 얻을 수 있습니다.
그리고 페이지 URL을 호출하면 /category/mycat/page/2 a404가 표시됩니다.하지만 분명히 게시물이 있을 겁니다.카테고리 내에 커스텀 타입의 게시물이나 정상적인 게시물이 있어도 상관없습니다.query_posts()에 대한 매개 변수가 올바르지 않다고 가정하지만...
$wp_query->max_num_pages 값이 잘못된 것 같습니다.하지만 왜 그랬을까?분류를 올바르게 등록하고 있습니까?(사용자 지정 게시물 유형에 범주 및 태그를 사용하는 것을 선호합니다.
어떻게 해야할지 생각해보셨나요?정말 고마워.
저는 방금 똑같은 문제에 부딪혔지만 어디에서도 해결책을 찾을 수 없었습니다!인터넷은 이 주제에 대한 자료들로 가득 차 있지만, 이 문제에 대한 정답을 제공하는 자료는 없었습니다.
여기 검색하는 사람들을 위한 정답이 있습니다.아래 코드를 함수에 넣습니다.당신의 테마의 루트 디렉토리에 있는 php.
function init_category($request) {
$vars = $request->query_vars;
if (is_category() && !is_category('Blog') && !array_key_exists('post_type', $vars)) :
$vars = array_merge(
$vars,
array('post_type' => 'any')
);
$request->query_vars = $vars;
endif;
return $request;
}
add_filter('pre_get_posts', 'init_category');
모든 크레딧은 Wordpress.com 에 이 글을 올린 Mike에게 전달됩니다.건배!
다음 내용을 추가해야 합니다.
'paged' => get_query_var('paged')
$args로 보내주시면 페이징이 괜찮으실 겁니다.
archive.php에서 다음을 사용해 보십시오.
query_posts( array(
'post_type' => 'lifestream',
'posts_per_page' => 6,
'orderby' => 'menu_order',
'orderby' => 'date',
'order' => 'ASC',
'paged' => '' . get_query_var('paged')
));
if ( have_posts() ) : while ( have_posts() ) : the_post();
endwhile; else:
endif;
다음 페이지 및 이전 페이지 링크의 경우 다음을 사용합니다.
next_posts_link('Older Entries', $wp_query->max_num_pages);
previous_posts_link('Newer Entries', $wp_query->max_num_pages);
언급URL : https://stackoverflow.com/questions/4951537/wordpress-custom-post-type-categories
'it-source' 카테고리의 다른 글
'Oracle'의 형식 이니셜라이저입니다.데이터 액세스.고객.Oracle Connection'이(가) 예외를 던졌습니다. (0) | 2023.10.13 |
---|---|
라디오 그룹에서 선택한 라디오를 값으로 설정합니다. (0) | 2023.10.13 |
Revolution Slider에서 이전 URL을 새 URL로 교체해야 함 (0) | 2023.10.13 |
식별자(id)에 대한 와일드카드 선택기가 있습니까? (0) | 2023.10.08 |
JAXB : 모든 요소에 네임스페이스 접두사 필요 (0) | 2023.10.08 |