Archive for 2月, 2011
ubuntu 10.10導入
0HDDが壊れて動作不能だったPCに40GのHDDを追加してUbuntuを導入してみました。
先日USBタイプのSSDに導入して無事動いたので多分大丈夫だろうと思って再びインストール。
アップデートもまとめてやったので多少時間がかかりましたが無事インストールが終わりました。
とりあえず追加でインストールしたソフトは
chrome
GIMP
Picasa
FileZilla
Docky
Ubuntu Tweak
です。
後日何かいいテキストエディタとEverNote、DropBoxあたりも入れないとだめかな。Wineは必要なんでしょうか?
サイトの記事数をカウントするwp_count_posts
0かちびとさんのサイトでお手軽WordPress Tips:総コメント数を表示させるコードというサイトのコメント数を取得できる方法が乗っていました。
なるほど。考えてみるとサイトのコメント数を取得しようと考えたことはないですが、レビューサイトなどにはあると便利なのかもしれませんね。
自分も他の作業で色々調べたときにいろんな物をカウントする関数を探していたのでそれをいくつか紹介
・記事数をカウントするwp_count_posts
wp_count_posts(’投稿タイプ’)でその投稿の投稿数を取得できます。引数が空の場合はpostが選ばれます。
例:)echo wp_count_posts(); //投稿の投稿数が表示されます。
例:)echo wp_count_posts(‘page’) //ページの投稿数が表示されます。
・特定のmimeタイプの件数を取得するwp_count_attachments
wp_count_posts(MIMEタイプ)でサイト全体のMIMEタイプの数を取得できる。まあ主に画像の総数を調べるのに使える。返り値はオブジェクトなので注意。
例:wp_count_posts(‘image’);で各画像の総数がオブジェクト形式で取得可能
Object ( [image/gif] => 13 [image/jpeg] => 11 [trash] => 0 ) という形で収納されている。
・記事のコメント数を数えるwp_count_comments($post_id)
特定記事のコメント数を数える。これはサイト全体ではなく記事単体になる。残念。
Twitterの内容からマルコフ連鎖で自動文章
2Twitterのfeedが取得できるようになったので何か面白いことができないかと思い色々探していたらマルコフ連鎖という面白い仕組みがみつかりました。
Yahooの形態素解析を利用して文章を作成するみたいです。
早速TwitterのツイートをRSSから取得して自動文章を作成する関数を作ってみました。
WordPressの検索フォームの検索範囲を変更する。
1WordPressのフォーラムで検索フォームから検索すると投稿だけではなくページやカスタム投稿も表示されるのを
なんとかしたいという内容の質問がありました。
あれ?確か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
0Wodpressで外部から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とカスタムフィールド
0wp_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件あたりをめどに自動で古い投稿を消すべきなのか、蓄積しても大丈夫なのか・・・
あまりデータ量が多くなってパフォーマンスが下がっては本末転倒なので、一定投稿数をこえたらバックアップをとって削除というのがスマートなのかもしれません。