如何在自定义 WordPress 插件中进行间接数据库调用?

问题描述 投票:0回答:1

我正在使用 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->帖子, 数组(

database wordpress plugins
1个回答
0
投票

正如 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 );
© www.soinside.com 2019 - 2024. All rights reserved.