Archiving posts in wordpress

时间:2014-10-28 作者:Imrul.H

我会在我的wordpress网站上发布很多帖子。我想要一个归档功能。我在我的网站上有一个单独的部分,只显示档案,而存档的帖子不会显示在其他部分。我希望这些帖子在30天后自动存档。我如何才能做到这一点?一些细节会很好,谢谢。

1 个回复
SO网友:Robert hue

有两种方法可以做到这一点。

1. You can modify the WordPress main query 要强制WordPress在存档页面和博客页面上显示超过30天的帖子,请在30天之前显示帖子。您可以通过以下帮助限制帖子date_query.

将此函数粘贴到函数中。php文件。这应该行得通。我对它进行了简单的测试。

function my_custom_get_posts( $query ) {

    if ( ! is_admin() && $query->is_main_query() ) {

        if ( $query->is_archive ) {
            $date_query = array(
                array(
                    \'column\'  =>  \'post_date_gmt\',
                    \'before\'   =>  \'30 days ago\',
                ),
            );
        } else {
            $date_query = array(
                array(
                    \'column\'  =>  \'post_date_gmt\',
                    \'after\'   =>  \'30 days ago\',
                ),
            );
        }

        $query->set( \'date_query\', $date_query );

    }

}
add_action( \'pre_get_posts\', \'my_custom_get_posts\', 1 );
请注意,此方法修改了WordPress主查询,但您将获得所需的效果。唯一的缺点是,此功能将更改您在网站上的查询。如果你有一个简单的博客,那么它应该不会是一个问题,你可以使用它没有任何问题。尽管在现场网站上申请之前要进行测试。

2. Use 2 custom page templates to run custom WP_Query for each. Recommended way.

您可以应用相同的date_query 网站各部分的限制。为主页和归档页面分别创建两个页面模板。

对于主页,您可以运行自定义WP_Query 像这样。

$args = array(
    \'post_type\' => \'post\',
    \'date_query\' => array(
        array(
            \'column\'  => \'post_date_gmt\',
            \'after\'   => \'30 days ago\'
        ),
    ),
    \'paged\' => $paged,
);

$homepage_query = new WP_Query( $args );
对于存档页面,您可以定义另一个WP_Query 像这样。

$args = array(
    \'post_type\' => \'post\',
    \'date_query\' => array(
        array(
            \'column\'  => \'post_date_gmt\',
            \'before\'   => \'30 days ago\'
        ),
    ),
    \'paged\' => $paged,
);

$archive_query = new WP_Query( $args );
这是一种更好的方法,因为它不会对其他WordPress查询进行任何修改。

结束

相关推荐

允许用户“EDIT_OTHERS_POSTS”只保存,不能发布

我想添加几个编辑器can edit_others_posts, 但我不希望他们能够publish 仅限其他帖子save 单击“提交以供审阅”按钮,即可发布帖子。我该怎么做?编辑:详细解释这一点。目前,我们不允许用户编辑其他帖子only 保存帖子。如果edit_others_post 为用户启用,则他们可以publish 邮报。我的目标工作流程:编辑只能编辑其他挂起的帖子(solved here). </编辑可以保存挂起的帖子but 不发布它。因此,他们可以使用“提交审核”按钮(当帖子处于挂起模式时,