php - 向 WordPress 帖子添加一个字段

标签 php mysql wordpress

我正在尝试在“添加帖子”中添加额外的字段, 我向 wp_post 添加了一个字段,可以是 0 或 1 然后我想将复选框添加到 WordPress 添加帖子或编辑帖子的发布框中 当该字段为 1 时选中,或当 0 时未选中 并且提交更新后应该可以保存

我知道我可以使用自定义字段模板,但问题是这些自定义字段将值插入 wp_postmeta 而不是 wp_post,并且我需要同一个表中单个帖子的所有内容。

实际上,我需要添加额外的字段来使用查询来检索我需要转换为 json 的一些记录,并读取它而不是所有帖子,适用于 android 和 ios 上的应用程序

最佳答案

首先,正如很多人已经提到的那样,您不应该修改核心表。您可以使用两个表中的联接进行选择,如下所示:

 $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 Hook ,然后将数据插入数据库,如下所示:

    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 来代替。

关于php - 向 WordPress 帖子添加一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27746935/

相关文章:

mysql - 将古吉拉特语文本插入 MySQL 表会导致出现垃圾字符和不可读的文本

php - 使用变量更新语句

php - 文档根目录外的 CMS 安装适用于所有域

html - 从主页删除 Logo - Wordpress

JavaScript 创建可点击的 href

PHP date_default_timezone_set()

php - wp_enqueue_style 在子主题中不起作用

DB 列值的 PHP 下拉菜单

php - 从 Codeigniter 备份恢复数据库

php - 将字段数据处理到mysql数据库的好方法