我想在WordPress管理帖子列表屏幕中默认显示当前日期的所有帖子(无需单击筛选按钮)。
我在中使用了此代码functions.php
它几乎可以工作。问题是,当我想查看除当前日期以外的其他帖子时,它将只显示今天日期的帖子。我无法使用此代码查看其他帖子。
function add_post_format_filter_to_posts( $query ) {
global $post_type, $pagenow;
// if we are currently on the edit screen of the post type listings
if ( $pagenow == \'edit.php\' && $post_type == \'shop_order\' ) {
if ( is_admin() ) {
$query->set( \'date_query\', array( array(
\'column\' => \'post_date_gmt\',
\'after\' => \'1 days ago\',
) ) );
return;
}
}
}
add_action( \'pre_get_posts\', \'add_post_format_filter_to_posts\' );
SO网友:birgire
您可以尝试对代码段进行以下修改:
function add_post_format_filter_to_posts( $query ) {
global $post_type, $pagenow;
// if we are currently on the edit screen of the post type listings
if ( is_admin()
&& $pagenow == \'edit.php\'
&& $post_type == \'shop_order\'
&& ! filter_input( INPUT_GET, \'filter_action\' ) // <-- We add this check
&& ! filter_input( INPUT_GET, \'post_status\' ) // <-- and this one
)
{
$query->set( \'date_query\',
array(
array(
\'column\' => \'post_date_gmt\',
\'after\' => \'1 days ago\',
)
)
);
}
}
add_action( \'pre_get_posts\', \'add_post_format_filter_to_posts\' );
其中,我们仅在获取参数
filter_action
和
post_status
未设置。