(有很多与此相关的问题,但我找不到有效的答案。)
当我从多站点的自定义插件查询自定义表时,get\\u var返回空。我错过了什么?(我还尝试了get\\u row和get\\u results,它们也返回空。)
这是针对子网站管理中使用jquery/ajax的发布/取消发布按钮。publish函数起作用,在子网站用户的博客中创建一篇新文章,并在自定义表中插入post\\u id、blog\\u id和uniquecode。只要我能够从自定义表中删除正确的行,unpublish函数也可以工作。
不起作用的是,在unpublish函数中,在从自定义表中删除行之前,我需要检索post\\u id并从子网站用户的博客中删除post,但post\\u id的get\\u var查询返回空。
以下是unpublish函数的相关部分,显示了get\\u var查询和删除正确的行,以及底部的print\\r检查:
global $wpdb;
$customtable = $wpdb->$table_prefix.\'customtable\'; // works for $wpdb->delete but not $wpdb->get_var
$user_blog_id = get_current_blog_id(); // works
$uniquecode = $_POST[uniquecode]; // works via jquery-ajax, value obtained from external database
$post_id = $wpdb->get_var($wpdb->prepare(\'SELECT post_id FROM \'.$customtable.\' WHERE uniquecode = \'.$uniquecode.\' AND blog_id = \'.$user_blog_id.\'\')); // not working, returns empty
wp_delete_post ($post_id, true); // $post_id = $wpdb->get_var is empty, preventing wp_delete_post from working
$wpdb->delete( $customtable, array // works - deletes row from $customtable
(
\'blog_id\'=>$user_blog_id,
\'uniquecode\'=>$uniquecode
),
array(\'%d\',\'%s\')
);
echo \'Post ID#\';
print_r($post_id); // returns empty
?><br><?
echo \'Unique code #\';
print_r($uniquecode); // returns correct value
?><br><?
echo \'Blog ID#\';
print_r($user_blog_id); // returns correct value