First 替换:
resgister_post_type
使用:
register_post_type
来修正打字错误。
Secondly 替换:
while( $portfolio_query->have_post() ){
使用
while( $portfolio_query->have_posts() ){
你忘了复数
s.
请注意调用不存在的方法的原因,如:
$portfolio_query->some_non_existent_method()
不会引发PHP错误,这是魔法
__call
的方法
WP_Query
类别:
/**
* Make private/protected methods readable for backwards compatibility.
*
* @since 4.0.0
* @access public
*
* @param callable $name Method to call.
* @param array $arguments Arguments to pass when calling.
* @return mixed|false Return value of the callback, false otherwise.
*/
public function __call( $name, $arguments ) {
if ( in_array( $name, $this->compat_methods ) ) {
return call_user_func_array( array( $this, $name ), $arguments );
}
return false;
}
如果没有它,我们将得到预期的:
致命错误:调用未定义的方法WP_Query::some_non_existent_method()
所以输入错误WP_Query
方法名称可能很难检测。
我想最好是throw an exception 而不是返回false
对于不兼容的方法:
throw new Exception(
sprintf(
__( \'Call to undefined method WP_Query::%s\' ),
sanitize_key( $name )
)
);