[WordPress] ワードプレスの記事にフィールドを追加します。

スポンサーリンク

Question

投稿追加私に余分なフィールドを追加しようとしている、0 または 1 にすることができます wp_post には、フィールドを追加、チェック ボックス発行] ボックスに追加したいし、ワードプレスのポストを追加またはフィールドが 1 つまたは未チェックときチェック ポストを編集 0 ともそれは保存後することがでく必要があります提出更新

カスタム フィールド テンプレートを使用することができることを知っています。、しかし、問題はこれらのカスタム フィールド wp_postmeta としない wp_post に値を挿入し、同じテーブル内の単一のポストのためのすべてを必要があります。

実際に私は android と ios のアプリケーションのためのすべてではない投稿、json と、読み取りに変換する必要があるいくつかのレコードを取得するクエリを使用するための余分なフィールドを追加する必要があります

答え

まず第一に、多くの人がすでに言及としてコア テーブルを変更しないでください。そのような両方のテーブルの結合を使用して選択を行うことができます:

 $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

を使用する必要があります

答え

最もよい解決は Relwis のメタ ボックスこのプラグインです。それを使用することができます。 ソースのリンク

http://stackoverflow.com/questions/27746935/add-a-field-to-wordpress-post

スポンサーリンク

Leave a Reply