これを実現するには「日本語を形態素解析」して自然言語を理解させなければなりませんね。
一応yahooに該当機能を提供するものがありますが・・・商用で使えたかな?個人的に使用するなら試してみる価値はあるかもしれませんが、当然自作プラグインになるでしょうね;)
ご参考:Yahoo!デベロッパーネットワーク 日本語形態素解析
ありがとうございます。
けっこう難しいオーダーだったようですね。不可能ではないけど、ベテランの方でもちょっと無理、みたいな代物なんでしょうか。※だから誰もプラグイン作ってないんじゃないか!
データベースにあるカテゴリのテーブルから文字列を配列でとりだし、preg_matchする、マッチしたら、カテゴリに入れる。
という程度じゃあダメなんですかね。
かなり時間はかかりますが、便利だと思うんですが…
参考になりそうなもの、あるいはヒント、注意点などがあったら教えてください。
データベースにあるカテゴリのテーブルから文字列を配列でとりだし、preg_matchする、マッチしたら、カテゴリに入れる。
事前にカテゴリをすべて作成しておくという条件と、複数回実行されないようにループを気をつける、本サーバーで動かすには負荷に気をつける、などそれなりに気を使えばできそうですね;)
タイトル限定とかしないとものすごく時間かかりそうですが・・・
カテゴリを作っておかない場合は、その『日本語を形態素解析』しなくちゃならない、というわけだったんですね。
僕の勝手なイメージでは
・カテゴリをつくっておく
・カテゴリを配列にする
・配列にある文字列をタイトルの中からpreg_matchする
・カテゴリに追加
・カテゴリに登録されている記事の数に追加(wpってカテゴリ内の記事数をカウントしなくちゃなりませんよね?)
・そして次へ
という程度のものでした。
で、foreachなどのループは使わないで、パラメータ持たせてリフレッシュさせる、
とか負荷かけないようにと考えてみたんですけど、変ですかね?
もちろんこうなったらプラグインじゃダメかもしれませんが。(iframe使えばいいか)
もちろん未検証で試していないので思いつくままだけ。
1.get_all_category_idsで全カテゴリーIDを取得
2.get_cat_nameでカテゴリーIDからカテゴリー名を取得、これを配列に代入
3.タイトルと比較してカテゴリーを付加
問題は、この3を行うタイミングです。新規記事を作成したときのみでよいのか?、mogueさんのおっしゃっていた
大量の記事のカテゴリをリセットしたときに再度振り分けるのはすごい大変なので…
を行うとしたら、時間のかかる作業になるでしょうから、閲覧のない時間などにsql回すなどが必要かもしれませんね。
それとも記事を1件ずつ表示しながら振り分けようのボタンでも生成するつもりだったのかな?
記事に直接カテゴリーを付加する関数が見当たらなかったので、どのあたりでフックすればいいのかちょっとわかりませんが、wp update postなどでwp_term_taxonomyテーブルを直接編集できるのかな?独自でsql叩く方が早いかもしれませんね。
よいプラグインができたら是非公開を;)
そうですね、考えてみると課題が多い発想でした。
プラグインを作るのはさらに難しい課題になってしまいますが、がんばってみます。
単純に
「カテゴリを再振り分け」ボタンがあって、タイトルから自動で振り分けてくれる
、っていうだけが目的の機能です。
サーバーに負荷をかけない、とかの課題があるのが面倒なわけです。
おっしゃられるようにSQLでやっつけてしまうのが一番の近道のような気がしてきましたね。
「カテゴリを自動再振り分け」ボタンを叩くとsqlが走るという構図で目下作成してみたいと思います。
ありがとうございました!!!
自作品の告知で告知してみました。
ありがとうございます!!
get_系関数よりもwpdb_系の方を多用しました。
いろんな関数がwpには用意されているんですね。
ただ、関数辞典みたいなのを買っても、その辺の関数は載ってませんでした。
そういう開発向けの関数も網羅した書籍、サイトなどはないのかなあ。
探してみますー