Wordpress 为找不到的帖子设置postdata不起作用

Wordpress 为找不到的帖子设置postdata不起作用,wordpress,Wordpress,我想为单个帖子页面设置自定义postdata。当前显示404未找到错误的单个帖子页面。我正在尝试从操作设置postdata 这是我的密码 add_action( 'pre_get_posts', 'set_custom_postdata' ); function set_custom_postdata(){ global $posts, $wpdb; if( isset( $query->query['post_type'] ) && $query->

我想为单个帖子页面设置自定义postdata。当前显示
404未找到错误的单个帖子页面
。我正在尝试从操作设置postdata

这是我的密码

add_action( 'pre_get_posts', 'set_custom_postdata' );
function set_custom_postdata(){
    global $posts, $wpdb;

    if( isset( $query->query['post_type'] ) && $query->query['post_type'] == 'custom_post_type_name' && isset( $query->query['name'] ) && is_single() && !is_admin() ) {
        wp_reset_postdata();    
        $result = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM `wp_custom_table` WHERE `post_name` = %s", esc_sql( $query->query['name'] ) ) );
        $post   = $result;
        setup_postdata( $post );
    }
}

谁能帮帮我吗。任何帮助都将不胜感激。

只需一个注释,您不需要
$post=$result行,只需使用
setup\u postdata($result)。另外,您确定
$result
返回a,因为这是作为参数所需要的。非常感谢您的回复。不,$result不返回WP_Post对象,它只是返回一个Post数组。我们可以手动创建WP_Post对象以在setup_postdata中传递它吗?Hello@Xhynk,我尝试了
WP_Post对象
,但没有成功。仍然面临同样的问题。还有别的办法吗?