我正在使用 WordPress 性能团队和插件审核团队的插件检查(PCP)来检查我的自定义插件。我收到以下警告消息:“不鼓励使用直接数据库调用。”所以我将我的帖子更新修改为以下代码:
$cache_key = 'add_guid_to_schedule';
$add_guid_to_schedule = wp_cache_get( $cache_key );
if( false === $add_guid_to_schedule ){
$add_guid_to_schedule = $wpdb->update($wpdb->posts, array(
'guid' => esc_url(site_url() . "?page_id=$new_id")
), array( 'id' => $new_id )
);
wp_cache_set( $cache_key, $add_guid_to_schedule );
}
我用 wp_cache_get() 和 wp_cache_set() 包装它,希望满足警告。
但是插件检查(PCP)返回指向更新行的相同警告: $add_guid_to_schedule = $wpdb->更新($wpdb->帖子, 数组(
正如 Chris Haas 提到的,您必须考虑使用 WordPress 的内置函数或 API,而不是直接与数据库交互。要更新帖子,您可以使用 wp_update_post() 函数,它以对 WordPress 更友好的方式处理帖子更新。
更改这些行
$add_guid_to_schedule = $wpdb->update($wpdb->posts, array(
'guid' => esc_url(site_url() . "?page_id=$new_id")
), array( 'id' => $new_id )
与
$post_data = array(
'ID' => $new_id,
'guid' => esc_url( get_permalink( $new_id ) ),
);
$add_guid_to_schedule = wp_update_post( $post_data );