2013-12-12 4 views
1

На недавнем клиенте проекта необходимо иметь вход <select /> в области комментариев комментариев. Мысль состоит в том, что владелец сайта читает каждый комментарий один за другим, и ему нужно помнить, что комментарий ведьмы важен для него, поэтому у <select /> будут два входа «Заинтересованные» - «Нет Заинтересованных».Wordpress Колонка и сохранение пользовательских данных

Создание пользовательского colummn на WordPress комментарии администратора, это не было много боли из-за 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 на новый comment admin column.

Основная проблема для меня начинается здесь, когда я не хочу сохранять пользовательскую опцию в базе данных.

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 является полем для последнего идентификатора вставки, вышеуказанное будет работать. Кроме того, вам действительно нужно запустить запрос. Так как вы используете 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

Смежные вопросы