我正试图让post meta更新/替换为$wpdb并遇到问题。我有工作的SQL,但在为我的WP插件编写代码时无法使其工作。
Extra note:
正在保存的post meta是,例如,Twitter follower count,我需要将该数字保存到数据库中,以便将结果导出到表中
这是我的工作SQL。当我把它放在PHPmyAdmin中时,它会更新所有post meta:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT wp_posts.ID, \'agency_details_seo_grade\', \'test\'
FROM wp_posts
WHERE wp_posts.post_status = \'publish\' and wp_posts.post_type = \'agencies\'";
这是我失败的尝试把它放在WP。结果没有发生任何事情(没有更改元,也没有错误消息):
// Failed attempt to put into functions.php
function add_grading_post_meta() {
global $wpdb;
$wpdb->prepare("SELECT ID,\'\',\'test2\'", $wpdb->query("INSERT INTO wp_postmeta ($post_id,meta_key,meta_value)"));
}
我正在尝试使其正常工作,以便在下一步将其与wp\\u cron一起使用之前,可以将其与wp调度函数一起使用。对于这第一步的任何帮助,我们都将不胜感激,在这个学习PHP的项目上花费大量时间。
Edit:
这里还有一个版本我试过了,但没有成功。由于@Czersplace注释,我对其进行了更改,该注释由旧堆栈交换帖子提供。
function add_grading_post_meta() {
global $wpdb;
$twitter_followers = \'agency_details_twitter_followers\';
$twitter_count = \'test3\';
$sql = "INSERT INTO $wpdb->wp_postmeta (post_id,meta_key,meta_value) VALUES (%d,\'%s\',%s) ON DUPLICATE KEY UPDATE meta_value = %s";
$sql = $wpdb->prepare($sql,$post_id,$twitter_followers,$twitter_count);
$wpdb->query($sql);
}