2013-12-12 53 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