2013-12-12 22 views
1

在最近的项目中,客户需要在评论管理区域中输入<select />输入。这个想法是,网站所有者逐一阅读每条评论,并且需要记住女巫的评论对他很重要,因此<select />将有两个输入“感兴趣” - “不感兴趣”。WordPresspress添加评论列和保存自定义数据

创建WordPress的评论管理自定义colummn,它并没有太多的痛苦,由于Wordpress Codex

/* Display custom column */ 
function display_posts_stickiness($column, $post_id) { 
    echo '<form method="post">'; 
    echo '<input type="hidden" name="populate_importancy" value="1" />'; 
    echo '<select name="importanceList[]">'; 
    echo '<option value="1">Please select</option>'; 
    echo '<option value="2">Importnat</option>'; 
    echo '<option value="3">No important</option>'; 
    echo '</select>'; 
    echo '<input type="submit" id="submit" value="Choose" />'; 
    echo '</form>'; 
} 

add_action('manage_comments_custom_column' , 'display_posts_stickiness', 10, 2); 

/* Add custom column to post list */ 
function add_sticky_column($columns) { 
    return array_merge($columns, 
     array('sticky' => __('Comment Importance', 'importancy_com_txt'))); 
} 

add_filter('manage_edit-comments_columns' , 'add_sticky_column'); 

直到有所有的工作就像一个魅力,列和下拉已经apeared上新评论管理员专栏。

对我来说,主要问题是从这里开始,当我不想在数据库上保存用户选项时。

add_action('save_post', 'save_importancy'); 

function save_importancy($comment_id) { 
    foreach($_POST["importanceList"] as $s) { 
     //'importancy' column have been added under cns_comments table 
     $insertSQL = sprintf("INSERT INTO cns_comments (importancy) VALUES(LAST_INSERT_ID(),". $s . ")"); 
    } 
} 

我不是一个PHP开发人员,而且我的PHP知识目前是有限的,并且在我将问题发布到此处之前已经过了几天。

我真的很感谢在这个问题上的一些帮助,谢谢。

回答

0
$insertSQL = sprintf("INSERT INTO cns_comments (id, importancy) VALUES(LAST_INSERT_ID(),'%s')", $s); 

您的sql语法和使用sprintf不正确。您正在尝试编写2个字段,但您只指定重要性。假设id是最后一个插入ID的字段,上面的工作就可以了。 另外,您实际上需要运行查询。由于您使用的WordPress,你应该只使用其内部的DB类:

function save_importancy($comment_id) { 
    global $wpdb; 
    foreach($_POST["importanceList"] as $s) { 
     //'importancy' column have been added under cns_comments table 
     $insertSQL = $wpdb->prepare("INSERT INTO cns_comments (id, importancy) VALUES (LAST_INSERT_ID(), %s)", $s); 
     $wpdb->query($insertSQL); 
    } 
} 

http://codex.wordpress.org/Class_Reference/wpdb

http://php.net/sprintf