以帖子形式添加标签输入

时间:2015-10-28 21:18:55

标签: php jquery wordpress tags

所以,我的插件中有以下表格用于上传后(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,,但这也不起作用。

有人可以指出我需要在第一个功能中做出哪些改变吗?

1 个答案:

答案 0 :(得分:0)

如果仍然存在问题,建议您添加一些var_dump语句。当后跟exit;语句时,它将立即显示对象中的数据。

我想查看每个if / then语句中的数据状态以及每个函数中的预期数据。

当然,在创建/上传图像之前和之后的数据。然后,我希望这个问题变得可见。

因此,通常,我会执行以下操作来调试问题。

在各个地方放置以下调试代码,您也可以在var_dump函数中使用逗号分隔符来添加不同的关键变量:

var_dump($_POST); 
exit;
  

您还应该考虑使用更好的变量名,因为代码   调试比需要的更加混乱。变量名称是   即使在单个if / then循环中(例如在   第二个功能是先提到$ data然后是$ post。