Archive for 3月, 2011
WordPress3.1で追加されたhas_termが便利
0テーマを作成していると、カスタム分類である値がある場合別の処理がしたいことがでてきます。
たとえば果物というカスタム分類にリンゴがある場合はリンゴのアイコンを出したい場合
<?php $terms_opts = get_the_terms($post->ID,"Fruit"); foreach($terms_opts as $opt){ if($opt->name == "りんご"){echo '<image src="apple.jpg">';} } ?>
という感じだったのですが、3.1から追加されたhas_termというのを使うと
<?php if(has_term("りんご","Fruit",$post->ID)):?> <img src="apple.jpg"> <?endif;?>
とシンプルにすみました。
使い方としては
has_term( $term, $taxonomy, $post )
となっており、
$postのデータの中の
$taxonomyというカスタム分類の中に
$termという項目があった場合Trueを返します。
$termの内容は、名前、ID,スラッグいずれでもOKのようです。一方$taxonomyの方は名前のみのようです(ラベル不可)
クラウド型チャットツール「ChatWork」が便利そう
0先日、クラウド型ビジネスチャットツール ChatWork(チャットワーク)というサービスが開始されました。
メールの時代は終わりましたと自信満々に宣言するあたり、試しに使ってみるとなかなかいい感じでした。
基本的にスカイプやGTalkみたいにチャットツールかと思いきや、プロジェクト管理ツールとして使っても非常に優秀でした。
ポイントとしてグループチャットというのがあります。
これは招待したメンバーでチャットを開けるわけですが、これをプロジェクト毎のグループにすると、このチャットログでプロジェクトの進捗情報がわかります。
しかも、タスク機能もついており、グループに参加している人の各タスクがわかり、自分のタスクとグループ全体のタスクをチェックしながら仕事を進めることができます。
また、ファイル管理機能も付いており、プロジェクトのファイルの送受信も可能となっています。
イメージとしてはスカイプとGoogleサイトが合体したようなイメージがあります。
プロジェクト管理ツールを探しており、近いうちにbasecampを試用してみようかと思っていたところですが
かなり気に入ったのでしばらくこれを使用しようかと思います。
最近見た投稿をチェックしたい。
0Wordpressで最近みた投稿をクッキーで記憶しておいてリスト表示しようと思いプラグインを作成しました。
手順としては
1.クッキーを読み込む
↓
2.読み込んだクッキーを配列に入れて、その配列の先頭にarray_unshiftで現在の投稿IDを挿入する。
↓
3.array_uniqueで重複しているIDがあった場合取り除く
↓
4.配列をシリアライズ化する。
↓
5.クッキーに保存する。
という形に持って行きたいとおもっています。
ところが、テストしているとクッキーに保存する直前までは idが 6,9 という形で二つ保存されているのですが
クッキーに保存して読み込み直していると9,6と配列の順番が逆になってしまいます。
更に調べるとクッキーに保存直前のシリアライズされた値と、クッキーに登録されているシリアライズされた値がすでに違うようです。
・・・なんでだろう?シリアライズしたのが悪いのか?,かなんかで区切って後で取り出すときに分割したほうがよかったのだろうか?
でも保存する最大数を決めずに可変にしているので、あまり数が多いと大変そう。最大数を10個くらいまでにしておいたほうがいいのだろうか。
管理メニューバーは有りか無しか
0WordPress3.1の新機能の中に管理メニューが上部に表示されるようになりました。
個人的には割と気に入っているのですがどうも不評な感じがします。
デフォルトで表示するようになっているせいで違和感を感じるせいでしょうか?
これが仕様としてONになっているとbodyの上部に28px程のマージンをかってにあけてしまうので、デザインが崩れる可能性が多少あります。
特にwp_headは記述しているのにwp_footerを記述していないと上部に白い空白だけができて非常に見栄えが悪いです。
やはり初期値はオフのほうがいいのでしょうか。もしくは管理権限のみ表示とか。
投稿したとき消えるタグの属性をどうにかする。
0マルチサイトの特権管理者や通常サイトの管理者の時はいいのですが、それ以外の権限の時に、投稿するときhtmlタグを記述した場合、その中にある属性によってはその属性が消えてしまうことがあります。
(具体的にいうとDLタグにclass属性はつけれられません)
どうもこれはwordpressの方で$allowedposttagsという変数に指定されたタグの指定された属性以外は削除するように設定しているようです。このままだと多少不便なのでいくつかの属性を許可したい場合のほうほうです。
よく使うbloginfoを定数化する。
0テーマを作成しているとよくbloginfo(‘template_directory)でテーマフォルダのパスを指定しています。
結構画像も多いし、一個一個パスを指定していって何かの都合で構成が変わったら不便なので疑問もなくつかっていたのですが
WordPressでのページ表示高速化の色々まとめ
をみると
<link rel=”pingback” href=”<?php bloginfo(‘pingback_url’); ?>” />
↓↓↓↓
<link rel=”pingback” href=”http://yourwebsite.com/xmlrpc.php” />
とかかれていました。
なるほど。確かに毎回データベースにアクセスしていると数も増えると結構なアクセスになるのかも。
でも直書きもしたくないなあと思い、よく使っていたテーマフォルダへのパスだけを定数化することにしました。
functions.phpに
add_action('template_redirect', 'set_bloginfo_define'); function set_bloginfo_define(){ define("__IMAGEURL__",get_bloginfo('template_directory') . "/img/"); }
と、書いておいて、テーマのパスが必要なところでは echo __IMAGEURL__ と書けば画像ファイルまでのパスが出力されます。
これならページを読み込む最初の一回だけデータベースにアクセスするから多少は軽くなるのでしょうか?
実際効果があるかはさっぱりわかりません。気休め程度でしょう。多分w
*追記:どういやらbloginfoの出力はキャッシュされるらしく、まったく意味がなかっったようですw
管理メニューを必要ないとき隠す
1WordPress3.1からの新機能の管理メニューは便利ですが、出しっぱなしだと結構じゃまになってきます。
そこで必要無いときに隠したいなあと思い、色々作ってみました。
WordPress3.1とネットワーク機能
0Wordpress3.1ではマルチサイトも強化されました。
ネットワーク管理者が管理画面にログインすると、右上にサイトネットワーク管理者というリンクが追加され、そこからネットワーク管理画面に移動できます。
専用のページが用意されているので一件便利にみえるが慣れないせいかどうもつかいにくいです。
各ページからネットワーク管理者でもプラグインのインストールなどができなくなったのも不便。
上部の管理メニューから参加サイトを選んで移動できるのは便利なんですけどねえ。