所以,我的插件中有以下表格用于上传后(wordpress):
if(empty($_POST['post_id'])){
$post = array(
'post_content' => 'Dummy Content',
'post_title' => 'Dummy Title',
'post_status' => 'inherit',
'post_type' => 'post'
);
$post_id = wp_insert_post( $post, true );
}else{
$post_id = $_POST['post_id'];
}
$upload_dir = wp_upload_dir();
$files = $_FILES['files'];
foreach ($files['name'] as $key => $value) {
if ($files['name'][$key]) {
$filename = rand() . '' . $files['name'][$key];
$file = array(
//Here goes other irrelevant code
);
$upload_overrides = array( 'test_form' => false );
$image_path[] = array(
'image_path' => $upload_dir['url'] . '/' . $filename,
'meta_key' => 'upload_image',
'meta_value' => $upload_dir['url'] . '/' . $filename,
'post_id' => $post_id
);
add_post_meta($post_id, 'upload_image', $upload_dir['url'] . '/' . $filename );
}
}
echo json_encode($image_path);
exit;
上面的函数将图像添加为具有虚拟内容的帖子,例如标题/描述等。
现在,如果我想更新内容,那么我可以通过以下方式完成:
global $wpdb;
$tags = $_POST['rh_tags'];
if(!empty($_POST['post_id'])){
$data = array(
'post_title' => $_POST['title'],
'post_content' => $_POST['content'],
'tags_input' => $tags,
'post_status' => 'publish'
);
$where = array('ID' => $_POST['post_id']);
$update = $wpdb->update($wpdb->prefix . 'posts' , $data, $where, $format = null, $where_format = null );
}else{
$post = array(
'post_title' => $_POST['title'],
'post_content' => $_POST['content'],
'post_status' => 'publish',
'tags_input' => $tags,
'post_type' => 'post'
);
wp_insert_post($post);
}
echo 'success';
exit;
我在这里添加了'tags_input' => $tags,
来添加帖子标记。
目前的情况如下:
1。在输入字段中没有选择图像(带有标题,描述和标记的简单输入字段的表单),如果我在没有选择图像的情况下向标记输入添加内容,则使用标签
2。选择了图像:如果选择了图像,则使用标记输入,它根本不会创建帖子。
我尝试在第一个函数中添加'tags_input' => $tags,
,但这也不起作用。
有人可以指出我需要在第一个功能中做出哪些改变吗?
答案 0 :(得分:0)
如果仍然存在问题,建议您添加一些var_dump
语句。当后跟exit;
语句时,它将立即显示对象中的数据。
我想查看每个if / then语句中的数据状态以及每个函数中的预期数据。
当然,在创建/上传图像之前和之后的数据。然后,我希望这个问题变得可见。
因此,通常,我会执行以下操作来调试问题。
在各个地方放置以下调试代码,您也可以在var_dump函数中使用逗号分隔符来添加不同的关键变量:
var_dump($_POST);
exit;
您还应该考虑使用更好的变量名,因为代码 调试比需要的更加混乱。变量名称是 即使在单个if / then循环中(例如在 第二个功能是先提到$ data然后是$ post。