WordPress MUのget_blog_listのナゾ
12 04 2008WordPress MUのwp-includes/wpmu-functions.phpに、get_blog_list()という関数があります。
名前からすると「存在するブログの一覧を取得する」機能と判断できますね。
もちろん、ボクもそう思いました。
しかし、コードをみるとblogsテーブルからselectするSQL文の条件に「public=’1′」 というのが含まれています。
この「public」というフィールドは、通常のWordPressでもおなじみの管理画面における「プライバシー」の状態を指しています。
「プライバシー」は、 「このブログを、検索エンジン (Google、Sphere、Technorati など) とアーカイブサイトを含め、誰でも閲覧できるようにする」かどうかのフラグで、具体的にはheadタグ内にmetaタグのnofollow, noindexを記述するかどうかというモノです。
となると、get_blog_list()内で「public=’1′」でフィルタするってのはなんなんでしょうか?
ソースコードをgrepすると、get_blog_list()は同じwpmu-functions.phpにあるget_most_active_blogs()という関数からのみ呼ばれています。
(get_most_active_blogs()はどこからも呼ばれていない)
う~ん、ナゾは深まるばかりです。
一つだけいえるのは、blogの一覧が欲しければ自分でfetchするしかないってことです。
WordPress MUの「サイト管理 - ブログ」画面のblog一覧も、get_blog_list()は使ってないのですから。
P.S.
この前、Plugin ManagerというMU用のプラグインについて書きました。
Plugin Commanderという別のものも見てみたのですが、どちらも少し「足りない」ので、自分で書くことにしました。
完成したらここで公開しまっす。
結構古いのでもう解決済みかもしれませんが、
public=’1′ とは、blogが一般公開か否かの設定のようです。
wpmu1.3.3なら、
サイト管理→ブログ で、ブログ一覧画面を出して、各ブログの「編集」から設定できます。
作成時は、非公開になっているようなので注意してください。
Mさん。こんにちは。
前に調査した時の記事で、あまりよく覚えてないのですが、「サイト管理 - ブログ - 編集 - 一般公開」のON/OFFは、ユーザーがブログを作る場合と、管理者が「サイト管理 - ブログ」でブログを作る場合でデフォルト値が違っていたような気がします。
で、ユーザーがブログを作る場合ですが・・・プライバシー設定とこれが連動しているように見えていて・・・どうも謎だなぁと思ったのだと記憶しています。
前の調査の時の勘違いだった可能性もあるのですが・・・う~ん、どうだったんだっけ?(汗
ちょと時間ができたら確認してみたいと思います。
ツッコミ、どうもありがとうございました。