wordpress
wordpressに関する内容を書いてます。
Subscribe2でカスタム投稿をメルマガ用にしたい
0Subscribe2 を試用してみました。
簡単にメルマガが配信されるようですが、メルマガ用の投稿のカスタム投稿を作り、普通の投稿ではメルマガ配信をせずに、メールマガジンというカスタム投稿に投稿された場合はメール配信するようにしようと思いました。
プラグインを覗くと、s2_post_typesというフィルターフックがあり、ここに投稿タイプを追加すればよさそうです。
さっそく投稿タイプmerumagaを追加。
上手く配信できませんでした。
あれ?と思い色々調べてみるともしかしてカテゴリーを設定しないとだめなんだろうか?
カスタム投稿にはカテゴリーが設定されてないのでだめっぽい?
このあたりをもうちょい調査する必要がありそうです。
メールマガジンプラグインを探す。
0Wordpressでメールマガジンも作成することになりました。
いままではメルマガ部分はAcMailerに任せていたのですがWordpressで組み込めたらいいなと。
メルマガの有名どころといえばSubscribe2というのがあるのでこれを後で試してみたいと思います。
現状希望する機能は
メルマガに登録するユーザーをWPのユーザーとは別枠で管理できる。
(WPのユーザーが増えたり、ログインされると色々不具合があるために)
特定のカスタムポストを指定して、そこに投稿された内容のみメールマガジンとして発信できる。
できれば疑似cronではなく普通のcronで予約配信を設定したい。
といったところでしょうか?
Subscribe2で全部できそうなきはしますが、できなければ最悪自分でカスタマイズする必要があるのでしょうか。
コメント機能付きギャラリーを作る
0WordPressのフォーラムでなかなか興味深い質問がありました。
ギャラリー表示で画像にコメントがつけられないかという内容でした。
そういや投稿だけではなく画像にコメントがあってもいいなあと思い色々調べてみると
画像もwp_postsで管理されているためにpost_idを保持しており、その値をキーにカスタムフィールドを持てることがわかりました。
というわけですごく適当にプラグインとして作成してみました。
使い方は、ギャラリーを表示したい場所に [comment_gallery] と記入するだけです。
ただし実験かつ適当に作ったのでスタイルなどはいっさいきいていません。
画像にコメントがつけられるかの実験用です。
*作ってから気が付いたのですが、post_idもってるならwp_commentsに直接書き込めたんじゃないか?これ
【welcart】商品毎に専用のテンプレートを使う
0Welcartの商品情報出力部分はsingle_item.phpに記述されていますが、これがある特定の商品のみデザインを変えたい場合や
情報を追加したい場合もあります。
Welcartの機能に、single_item.phpを他のパスに変更できるフックがあるので、それを利用して特定の商品のページのみ違うデザインを読み込ませることにします。
(さらに…)
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の方は名前のみのようです(ラベル不可)
最近見た投稿をチェックしたい。
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