首先,你不應該修改核心表,因爲很多人已經提到過。你可以做一個選擇使用從這樣的兩個表聯接:
$querystr = "
SELECT $wpdb->posts.*
FROM $wpdb->posts, $wpdb->postmeta
WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id
AND $wpdb->postmeta.meta_key = 'tag'
AND $wpdb->postmeta.meta_value = 'email'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
AND $wpdb->posts.post_date < NOW()
ORDER BY $wpdb->posts.post_date DESC
";
$pageposts = $wpdb->get_results($querystr, OBJECT);
更多在這裏:http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query比
其他,究竟是什麼問題了嗎?要顯示自定義複選框,您可以使用add_meta_box函數。要更新它,你需要你的函數的數據添加到wp_insert_post_data
鉤,然後插入到數據庫中,這樣的事情:
add_filter('wp_insert_post_data', 'so27747402_save_data');
function so27747402_save_data($post_san){
global $wpdb;
global $post;
$checkbox = (isset($_POST['so27747402_checkbox']) && $_POST['so27747402_checkbox'] == 1);
update_post_meta($post->ID, '_so27747402_checkbox', $checkbox);
return $post_san;
}
或類似的,如果你堅持通過更改核心表做:
add_filter('wp_insert_post_data', 'so27747402_save_data');
function so27747402_save_data($post_san){
global $wpdb;
global $post;
$checkbox = (isset($_POST['so27747402_checkbox']) && $_POST['so27747402_checkbox'] == 1);
$wpdb->query("UPDATE $wpdb->posts SET checkbox = $checkbox WHERE ID = $post->ID");
return $post_san;
}
但是,這是一個非常糟糕的方式。您應該使用update_post_meta
。
你真的不應該修改核心的WordPress表 - 你應該使用的自定義字段模板。 –
我知道,但我必須在表格 –
中增加一個額外的字段爲什麼?這聽起來像XY問題。 –