我应该在主题中的哪里更新_Options?

时间:2011-06-03 作者:Avery Chan

我正在设计一个主题,其中主页(即。is_home()) 应该只显示最新的博客文章。我想做点什么$wp_query->update_option(\'posts_per_page\', 1) 每次我在主页上。所有其他显示帖子(如归档)的页面都应该遵循用户定义的选项。

每次都这么做似乎有点不必要,因为选项应该只设置一次,对吗?是否可以在循环中忽略posts_per_page 和力have_posts() 只设一个职位?

一般来说,这种“一次性设置”的东西应该去哪里?我真的不认为它应该是一个插件,因为它是特定于主题的。我也不想干扰用户的选择,这就是为什么update_option 不是解决这个问题的最佳选择。

3 个回复
最合适的回答,由SO网友:Rarst 整理而成

另一种方法(如果您希望/需要将其保存在functions.php中,并通过挂钩而不是修改模板)如下:

add_action( \'pre_get_posts\', \'pre_get_posts_home\' );

function pre_get_posts_home( $query ) {

    global $wp_query;

    if( $wp_query == $query && $query->is_home )
        $query->set( \'posts_per_page\', 1 );
}

SO网友:Bainternet

posts_per_page 应在“设置”阅读面板上设置一次,并作为常规选项,除非使用query_posts() 例如,如果希望主页只显示一个,则将此代码放在循环上方:

if (is_home()){ // conditional check for homepage
    global $query_string;
    parse_str( $query_string, $args );
    $args[\'posts_per_page\'] = 1;
    query_posts( $args );
}

SO网友:Anh Tran

我更喜欢使用函数而不是全局变量,如下所示:

if (is_home()) set_query_var(\'posts_per_page\', 1);

结束

相关推荐

如何从wp_Options中的多维数组中检索多个值?

我刚刚开始在wp\\U选项中以多维数组存储数据,我需要一些帮助来检索一些数据。。。我的数据位于下面,存储为option\\u name“My\\u category\\u fields”我需要提取一个类别ID字符串,其中my\\u cat\\u hide设置为true。我把我的职能放在这里了。我如何完成它?function get_hidden_cats() { $my_cats = get_option(\'ce4_category_fields\'); //how do