サポート » 使い方全般 » 管理画面以外から記事を投稿する方法

  • 解決済 osamuya

    (@osamuya)


     現在、管理画面以外から記事を投稿する方法を研究しています。フォームを作成してwp_poststeテーブルに直接書き込む方法で作りましたが、何かしら不恰好な状態でして、いろいろ関数を探していると、
    $wpdb->get_results($sql);
    というものを発見しました。接続の設定をしなくてもこのメソッドにSQL文を入れるだけで検索結果が得られるものす。(大変便利です。)このメソッドでもってinsert文を挿入しているのですが、インサートデータにはパーマリンクなど挿入したレコードのID(ブログ記事ID)を利用する部分がありまして、今現在やっているのは、
    ・最初にダミー的なデータをインサートしてから、そのIDを取得し、
    ・そのIDをキーにしてデータをアップデートする
    という方法です。まどこっろしいやり方なので、何かシンプルな方法はないかと探しております。記事登録の際にデータベースにインサートするために特化したクラスなどはありませんでしょうか?
     もし知っている方いましたら、おしえてください。
     よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • wp_insert_postがいいと思います。
    http://www.google.co.jp/search?hl=ja&q=wp_insert_post

    トピック投稿者 osamuya

    (@osamuya)

    mogueさん、ありがとうございます。
    さっきからいろいろ考えてまして、

    こんなので、次のIDを求めて、$wpdb->insertかな…と思っていましたが、

    $sql = "select * from $wpdb->posts where post_type = 'post'";
    $posts = $wpdb->get_results($sql);
    $max = multidimensionalMax($posts);
    
    $max = 0;
    function multidimensionalMax($data) {
    	foreach($data as $line) {
    		$num = intval($line->ID);
    		if ($num > $max) {
    			$max = $num;
    		}
    	}
    	$max++;
    	return $max;
    }

    mogueさんのおしえてくれた関数で、全部解決したように思います。。とほほです。
    ありがとうございます!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「管理画面以外から記事を投稿する方法」には新たに返信することはできません。