我有自定义帖子类型。 永久链接看起来像/%postname%
我的CPT功能:
function cpt_lyrics() {
$labels = array(
'name' => _x( 'Lyrics', 'Post Type General Name', 'Lyrics' ),
'singular_name' => _x( 'Lyrics', 'Post Type Singular Name', 'Lyrics' ),
'menu_name' => __( 'Lyrics', 'Lyrics' ),
'parent_item_colon' => __( 'Parent Lyrics:', 'Lyrics' ),
'all_items' => __( 'All Lyrics', 'Lyrics' ),
'view_item' => __( 'View Lyrics', 'Lyrics' ),
'add_new_item' => __( 'Add New Lyrics', 'Lyrics' ),
'add_new' => __( 'Add New', 'Lyrics' ),
'edit_item' => __( 'Edit Lyrics', 'Lyrics' ),
'update_item' => __( 'Update Lyrics', 'Lyrics' ),
'search_items' => __( 'Search Lyrics', 'Lyrics' ),
'not_found' => __( 'Not found', 'Lyrics' ),
'not_found_in_trash' => __( 'Not found in Trash', 'Lyrics' ),
);
$args = array(
'label' => __( 'lyrics', 'Lyrics' ),
'description' => __( 'Lyrics Name', 'Lyrics' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', 'comments', 'page-attributes', 'post-formats', ),
'taxonomies' => array( 'bands', 'albums' ),
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 7,
'menu_icon' => '',
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
);
register_post_type( 'lyrics', $args );
}
分页功能有效,但它显示如下链接:domain.com/page/2,我收到错误404。 但网址可在以下网址获得:domain.com/?page=2。 为什么会这样?
答案 0 :(得分:0)
您需要在循环上方添加分页查询,以便我认为自定义帖子类型的分页工作正常。
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('posts_per_page=3&paged=' . $paged);
?>
或
if ( get_query_var('paged') ) { $paged = get_query_var('paged'); }
elseif ( get_query_var('page') ) { $paged = get_query_var('page'); }
else { $paged = 1; }
query_posts('posts_per_page=12&post_type=lyrics&paged=' . $paged);
答案 1 :(得分:0)
你也可以使用分页插件。 https://wordpress.org/plugins/wp-paginate/ 要么 https://wordpress.org/plugins/wp-smart-pagination/ 比如更多的插件..
答案 2 :(得分:0)
可能会对某人有用...将其添加到functions.php:
function my_post_queries( $query ) {
if (!is_admin() && $query->is_main_query()){
$taxonomies = array ('YOUR_TAXONOMY');
if(is_tax($taxonomies) || is_home()) {
$query->set ('post_type', 'YOUR_POST_TYPE');
}
}
}
add_action( 'pre_get_posts', 'my_post_queries' );