【问题标题】:add a field to wordpress post在 wordpress 帖子中添加一个字段
【发布时间】:2015-01-02 18:41:24
【问题描述】:

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

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

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

【问题讨论】:

  • 您不应该真正修改核心 wordpress 表格 - 您应该使用自定义字段模板。
  • 我知道,但我必须在表格中添加一个额外的字段
  • 为什么?这听起来像是 XY 问题。
  • 但是有很多记录,如果我使用连接 2 表,我认为加载数据会很糟糕
  • 因为它太大了

标签: php mysql wordpress


【解决方案1】:

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

 $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

【讨论】:

    【解决方案2】:

    我们有插件可以将自定义文件添加到帖子中。

    https://wordpress.org/plugins/advanced-custom-fields/

    1.创建一个字段

    2.assign 发帖

    【讨论】:

      【解决方案3】:

      最好的解决办法是 Relwis 的 Meta Box 插件。你可以使用它。 Source link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-22
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 2012-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多