サポート » 使い方全般 » Ktai Entryで、カスタムフィールドを投稿したい。

  • Ktai Entryを使わせていただいてメールで記事の投稿をしています。
    カスタムフィールドへ投稿するようにすることはできないでしょうか?
    また、カスタムフィールドへメール投稿できるプラグインがあれば
    教えていただければ嬉しいです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • Ktai Entry 0.8.11
    WordPress 2.9.1

    事の善し悪しは置いといて、
    functions.php に以下を追加するとそれらしい感じになります。
    本文のどこかに行頭から META:キー=値 と書きます。
    いくつでも可。重複キーの場合は後に書いた方が有効。
    ※メール投稿だけでなく、管理画面からの投稿でも動作します。

    define('KE_SET_META', 'META:');
    function my_insert_post($post_ID, $post){
      global $wpdb;
      $content = $post->post_content;
      if(preg_match_all('/^(' . preg_quote(KE_SET_META, '/') . ')(.*)$/m', $content, $matches)){
        foreach($matches[0] as $match)
          $content = trim(preg_replace('/^' . preg_quote($match, '/') . '[ \t\r]*(\n|\z)/m', '', $content));
        foreach($matches[2] as $match){
          $meta = explode('=', $match);
          if(count($meta) == 2)
    	update_post_meta($post_ID, $meta[0], $meta[1]);
        }
        $wpdb->update($wpdb->posts, array('post_content' => $content), array('ID' => $post_ID));
      }
    }
    add_action('wp_insert_post', 'my_insert_post', 10, 2);

    コマンド消す辺りがもっと簡潔になるといいな。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    wp_insert_post フックですと、投稿リビジョンを使っていると不具合が出る可能性があります。publish_phone アクションを使うのが一番安全でしょう。phone_content フィルターは post ID が渡ってこないので、今回の用途では使えないです。

    カスタムフィールド投稿機能を Ktai Entry に追加することはさほど難しくないんですが、
    これ以上コマンドが増えてもややこしくなるだけなので、標準機能として追加することは慎重に検討が必要です。

    この記事を拝見して試してみましたが
    fatal error: call to undefined function add_action
    とエラーが出てしまいました。

    add_action(‘wp_insert_post’, ‘my_insert_post’, 10, 2);
    の位置を変えたところエラーは出なくなりましたが
    カスタムフィールドへ値が代入されず、本文にMETA:キー=値がそのまま残ります。

    他に投稿できる方法はございませんでしょうか?

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Ktai Entryで、カスタムフィールドを投稿したい。」には新たに返信することはできません。