posts_per_page的自定义类型与管理信息中心中选择的不同

时间:2014-02-15 11:35:25

标签: php wordpress custom-post-type

我是wordpress开发的新手,我创建了一个像这样的电影自定义类型:

// Create new post types, films
add_action('init', 'prowp_register_my_post_types');

function prowp_register_my_post_types(){

    $labels = array(
      'name' => 'Films',
      'singular_name' => 'Film',
      'add_new' => 'Add new film',
      'add_new_item' => 'Add New Film',
      'edit_new_item' => 'Edit Film',
      'new_item' => 'New Film',
      'all_items' => 'All Films',
      'view_item' => 'View Film',
      'search_items' => 'Search Films',
      'not_found' => 'No films found',
      'not_found_in_trash' => 'No films found in Trash',
      'parent_item_colon' => '', 
      'menu_name' => 'Films'
    );  

    $args = array(
      'labels' => $labels,
      'public' => true,
      'has_archive' => true,
      'rewrite' => array('slug' => 'comprar-peliculas-80'),
      'supports' => array('title', 'custom-fields', 'thumbnail'),
    );  

    register_post_type('films', $args);
}

在archive-films.php中输入了这个:

$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

$args = array(
  'posts_per_page' => 2,
  'paged' => $paged,
  'post_type' => 'films',
  'orderby' => 'name',
  'order' => 'ASC',
);  

$wp_query = new WP_Query($args);

然后页面呈现消息“没有条目”,但是如果我将管理仪表板中每页的帖子的最大数量更改为2,则页面返回结果。关键是,我希望这种类型的内容每页有2个帖子,博客的其余部分有5个。

我如何仅针对此类内容更改此属性?

感谢并抱歉我的英语不好;)

更新

例如,如果:
我在管理面板中设置“要在站点中显示的最大条目数”到:3
我在archive-films.php中设置了posts_per_page => 3
我在/ films / 3条目中看到,如果我点击下一页,我会看到/ films / page / 2 /
中的另外3个条目

但是如果:
我在管理面板中将值“在站点中显示的最大条目数”更改为10,然后单击下一页,
我在/ films / page / 2中看到“没有条目”

1 个答案:

答案 0 :(得分:0)

register_post_type没有“posts_per_page”参数,看那里=> http://codex.wordpress.org/Function_Reference/register_post_type

您可以使用过滤器“pre_get_posts”过滤电影管理员中的查询。 像那样:

add_action('pre_get_posts', 'film_admin_query' );

function film_admin_query( $wp_query ) {

if( is_admin() && in_array('film',$wp_query->get('post_type'))) {
    $wp_query->set('posts_per_page',2);
}
}