wordpress

wordpressに関する内容を書いてます。

Twitterの内容からマルコフ連鎖で自動文章

2

Twitterのfeedが取得できるようになったので何か面白いことができないかと思い色々探していたらマルコフ連鎖という面白い仕組みがみつかりました。
Yahooの形態素解析を利用して文章を作成するみたいです。
早速TwitterのツイートをRSSから取得して自動文章を作成する関数を作ってみました。

参考
http://dogmap.jp/2008/08/27/markov-text-generator/

(さらに…)

WordPressの検索フォームの検索範囲を変更する。

1

WordPressのフォーラムで検索フォームから検索すると投稿だけではなくページやカスタム投稿も表示されるのを
なんとかしたいという内容の質問がありました。
あれ?確かWordpressの検索は投稿のみしか検索しなかったと思ったんだけど違ったっけ?と思い調べてみると
元からなのか仕様が変わったのか確かにpost_typeの指定はありませんでした。
(さらに…)

fetch_feedでTwitterのatomを取得

1

先日、fetch_feedでTwitterのRSSデータを取得してやる方法がわからなくてfetch_rssを利用していましたが、
参考になるサイトが見つかったのでなんとかfetch_feedでTwitterのRSSを取得することができました。

*参考サイト
汎用的なXMLをsimplepieで利用してみる(楽天ランキングとかの場合)
Simplepie拡張アドオン「simplepie_twittersearch.inc」

(さらに…)

fetch_rssとfetch_feed

0

Wodpressで外部からRSSデータを取得するにはfetch_rssという関数を使います。
しかしこれは調べるとどうも非推奨になっていてfetch_feedを使って欲しいとのこと。早速サイトを参考に色々試してみました。

*参考サイト
http://everything.ismusic.in/2010/10/wordpress-rss-feed-fetch_feed/

fetch_rssはget_title()等で簡単にRSSデータを取得できて非常に便利でした。反面fetch_rssは配列で収納されているのでデータを探すのが面倒でした。

ところが、TwitterのRSSを読み取ろうとしたら問題が発覚。
link_imageやtwitter:source等、RSSに本来存在しないメタデータの取得方法がわからなかったです。
SimplePieのサイトを見て色々試してみても上手く取得できず。
うーん・・・非推奨でもfetch_rssをつかったほうがいいのだろうか。

wp_insert_postとカスタムフィールド

0

wp_insert_postでカスタム投稿にTwitterのログを投稿し、ハッシュタグと名前をカスタム分類として投稿するのにも成功しました。
次は情報としてユーザーの画像、更新日時、Twitterの投稿ID、どこから投稿されたかの情報などをカスタムフィールドとして登録しようかと思いました。

wp_insert_postではカスタムフィールドは登録できません。カスタム投稿はpost_metaテーブルに保存されているからです。
というわけで、前回と同じく返り値のIDからadd_post_metaを使いカスタムフィールドを登録しました。

・・・が、登録成功しているはずなのにデータが表示されない。おかしい。
更新日時は表示される。ユーザーの画像URLなどが表示されない。はて?
データベースを直接見てみて原因発覚。
データを扱いやすくするために、Twitterから受け取ったデータをsimplexml_load_stringでオブジェクトに代入してました。
そしてそのままカスタムフィールドに値を入れたのでデータがオブジェクトとして入ってました。データ形式を変更して解決。

次は保存したデータを使って実際に表示していきたいと思います。

wp_insert_postとカスタム分類

1

先日、カスタム分類をTaxInputで登録できるはずなのに全然うまくいかないで困っていました。
結局よくわからなかったのと、よく考えたら後からカスタム分類を別個追加したほうが楽なんじゃないかと気が付き、方法を変更しました。

$id = wp_insert_post($post_data); 
wp_set_object_terms($id,$tags,'hash_tag');

wp_insert_postは返り値にpost_idを返します。そこで、投稿設定をした後にそのpost_idで
wp_set_object_termsを使いカスタム分類を追加しています。これはhash_tagというカスタム分類に$tagsの内容を登録しています。

これでハッシュタグ(ついでにユーザー名も)を関連付けた投稿をポストすることに成功しました。
次の問題は一日に呟かれる設定ワードの呟きが100~200件程あるのであっという間に1万件近いデータになってしまうことです。
だいたい一ヶ月相当として5000件あたりをめどに自動で古い投稿を消すべきなのか、蓄積しても大丈夫なのか・・・
あまりデータ量が多くなってパフォーマンスが下がっては本末転倒なので、一定投稿数をこえたらバックアップをとって削除というのがスマートなのかもしれません。

wp_insert_post()とTax_input

0

現在TwitterのAPIからデータを取得して
タイトルと本文に内容、カスタム分類でハッシュタグとユーザー名を登録しています。
カスタム分類の登録には前述したTax_inputに値を入れればいいみたいなので入れて確認していたのですが
いざ動かしてみると本文波頭録されるがカスタム分類が登録されない。
あれ?おかしいな。テストしたときは上手く動いたのですが・・・
テスト時と違うとしたらカスタム分類の項目が増えたことでしょうか。
複数項目の場合の設定がおかしいのかもしれません。現在必死に調査中です。

WordPressの外部からポストできる関数wp_insert_post()

1

Wordpressにはwp_insert_postという関数があります。
これを使うと外部から投稿フォームを作ったりプラグインから投稿フォームを作ったりすることができます。

*参考
wp_insert_postリファレンス
81行から成るWordPressの自作投稿フォーム

しかしこの記述だとカスタム投稿やカスタム分類に対応してないように見えます。投稿された内容が3.0以前の話なので当然ですが
調べるとちゃんとカスタム投稿とカスタム分類も対応しています。(というか、普通の投稿もこの関数を使用しているわけで対応していないとおかしい)
というわけで自分的メモで
カスタム投稿はwp_insert_post( $my_post );
$my_post = array(‘post_type’=>’カスタム投稿名’);
でOKでした。
カスタム分類は少しややこしくて
tax_input=>array(‘カスタム分類A’=>値,’カスタム分類B’=>値)
という形になるようです。
これを利用して現在Twitterからのログを取得してそれをカスタム投稿にログとして残す実験なんかしています。

Collabpressを日本語化してみた

1

先日紹介したプロジェクト管理プラグインのCollabpressをちまちま日本語化してみました。
オリジナルとの変更点は

1.日本語化に際し、cp-loader.phpにload_plugin_textdomain関数を追加。
2.日本語化に際し、何カ所かに__()の追加と変更。
3.タスク一覧時に、残っているタスクの数を表示するように変更
等をしております。

ダウンロード

翻訳作業が慣れないので日本語が変な場所があったらすみません。

ログイン状態かどうかでテーマを切り替えるプラグインUser Level Themes

0

テーマを色々カスタマイズしていると、実際のページで作業しながら変更したいときがあります。
でも、稼働中のサイトだと変更している状態が見られるのもいやなので、ログイン(できれば管理者権限でログイン中)のみ
修正中のテーマが表示され、他のログアウトしているときは通常のテーマを表示できない物かと色々探していたら
User Level Themesというプラグインをみつけました。

(さらに…)

Go to Top