簡體   English   中英

Wordpress自定義帖子類型類別

[英]Wordpress custom post type categories

嘿。 我在wordpress中使用自定義帖子類型。 我注冊這樣的自定義帖子類型:

        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();   

到目前為止這是有效的。 但是,我遇到了類別和標簽頁面的問題。 如果我打電話給首頁一切都很好,我可以通過頁面分頁得到正確的結果。

並且,如果我調用分頁URL,例如/ category / mycat / page / 2,則拋出404。 但絕對應該是帖子。 無論該類別中是否有自定義類型帖子或normale帖子。 我想我的query_posts()參數不正確,但不知道......

似乎$ wp_query-> max_num_pages具有錯誤的值。 但為什么? 我是否正確注冊了分類法(我喜歡使用自定義帖子類型的類別和標簽)?

你有什么想法怎么辦? 非常感謝!

我剛遇到完全相同的問題,無法在任何地方找到解決方案! 互聯網上充滿了關於該主題的資源,但沒有一個提供正確的答案。

這是搜索任何人的正確答案。 放入的functions.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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM