这里有两个基本问题:
问题1
pre_get_posts
允许您在查询发生之前对其进行修改,在本例中,您是在主查询发生之前对其进行修改。
但你要这样做:
if ( get_post_type() == \'saved-orders\' ) {
get_post_type
这里不应该工作,因为现在太早了,主查询还没有发生。相反,让我们询问查询对象:
if ( \'saved-orders\' === query->get( \'post_type\' ) {
问题2这是一个语法错误,PHP无效:
$query->set( \'author\' => $current_user->ID );
=>
仅在两种情况下使用:
array(
\'key\' => \'value\'
)
以及
for ( $array as $key => $value )
它们都不是函数调用。调用
set
方法是:
$query->set( \'queryvar\', $new_value );
有了一些初级PHP知识,您现在应该能够修复过滤器了。