これならすぐわかんじゃん!はい、ごめんください。

公開前のページ、つまり「下書き」「レビュー待ち」「予約投稿」の状態の投稿記事や固定ページを、ログインしなくても確認できるプラグイン Public Post Preview が超絶ありがたすぎて鼻水でた勢いで日本語化しました。
といっても、元々わかりやすい英語なので、難しい説明は一切ないんですけどね。

公式:WordPress › Public Post Preview « WordPress Plugins

プラグインのインストール方法は省きますが、プラグインをインストールした lang ディレクトリに下記のファイルをアップロードしてください。(.po を同梱していますが、.mo ファイルだけでも OK です。)

Public Post Preview 日本語訳ファイル(2.1.1 対応版)

2013.04.26 追記:2.2はWP3.5以上からの対応となります。

有効にした後、どうしたらいいの?

設定箇所はなく、サイドバーにメニューは出てきません。新規投稿の状態ではまだ使えませんので、投稿編集画面に下記のような項目が表示されます(日本語にした場合)。

新規投稿の時はまだ使えません

この記事が下書きなどで保存されると、下記のように変わります。

下書きになると限定公開できるようになります

あとはチェックを入れると、下記のように表示が変わり、自動的に限定公開できるようになります。プレビュー画面を共有するんだよ、というのがよくわかりますね。

表示されたURLを使ってくだされ

注意その1◇有効期限があります

デフォルトでは48時間に設定されています。これだと短い!もしくは長い!という方は下記のコードを function.php に追記して有効期限を変更することができます。

14日にしたいなら、 60*60*24*14 ですし、12時間にしたいなら 60*60*12 で OK です。

注意その2◇「非公開」では使えません

「非公開」の記事を設定しようとすると、「この投稿はもう公開されてるから使えないよ」的なメッセージが表示されます。使えるのは下書き、レビュー待ち(保留中)、予約投稿 の3つです。
これらの「プレビュー画面」を強制的に公開するプラグインなのですね。

CMS として使うための必須プラグインと言っても過言ではなぁい!(個人的に)

WordPress を CMS として使っていると、確認だけはするけど CMS にログインする程でもない、という場合・・・例えば上司や別部署、お客様や関連他社の確認が必要になることがよくあります。

今までは共通のログイン ID とパスワードを発行して確認していただいていたのですが、「どうやって見るんだっけ?」という問い合わせが多く、そのたびに通達して毎月の恒例行事となっていました。

それが!ログインしなくても閲覧できるので、ユーザーの登録とか ID 管理とかログイン権限とか関係なく、ちょこっと見せたい時にものすごく重宝します。

ワークフロー機能もついていたらいいのかな?とも思いましたが、このシンプルさがありがたいですね。

Writing Notes with Grammyはい、ごめんください。
音楽聞きながら仕事してたら、やけに捗って遅くまでテンションあがってしまったひじりです。お肌が荒れて困りますわね奥さん。

さて、お客様が WordPress を使うにあたって、プレビュー機能があるとはいえ、やはり編集画面は実際の画面に近いほうがいいよね、ということで色々カスタマイズしていたのですが、一気に便利になった方法がありました。

editor-style.css にスタイルをコピーするのがメンドクサアァァァイ!!

管理画面のスタイルは editor-style.css をテーマ用ディレクトリに作成してゴニョゴニョするのですが、クラスとか増えるたびコピーするのが面倒になってきました。最後にやる作業であることは間違いないのですが、今後も増えてくるだろうなと。
そうすると、適用されている CSS をそのまま使えたらいいのになー と、思うわけです。コピーするのがメンドク(ry

管理画面の細かいカスタマイズについては下記サイトが参考になります。
WordPressのTinyMCEをチキチキにカスタマイズする | 高橋文樹.com
WordPressテーマのfunctions.phpでは$content_widthを定義するべし | firegoby

まずは使ってる CSS を呼んで設定を足そう

editor-style.css を使えるようにするには、add_editor_style という関数を使うのですが、これは CSS を有効化するためのものではなく、読み込むための命令なんですね。ということは、他の CSS も読み込めるわけです。いくつでも良いみたいですよ。

また、テーマ内で投稿内容が反映される場所って、大抵 class や id の指定がされています。例えば、デフォルトテーマの Twenty シリーズだったら #primary とか。投稿画面=投稿内容が反映される部分 と考え、class もしくは id を設定しましょう。class は知ってたけど、ダメ元で id やったら適用できました(・ω・)

早速 function.php に下記の内容を追記。editor-style.css はひとまず空っぽのまま作っておいてください。css フォルダに置いてあるような css は、function.php からの相対パスを設定してください。

これで設定した CSS が読み込まれます。プラグイン使わないと、かゆいところに手が届いて良いですね。
編集画面を確認すれば、表示が変わったのがわかるかと。chrome などの開発用ツールで確認しても読み込まれているのがわかるかと思います。$initArray[‘body_id’] を使ったら、ちゃんと body に id が設定されました!

そして editor-style.css で調整

このままだと、「body に背景は設定してて #primary は白いんだけどなあ」という場合などに対応できていません。それを editor-style.css で差を吸収します。下記は一例です。

あとは、style.css などで設定した class などがそのまま使えるので、theme_advanced_styles(TinyMCE Advanced だとスタイルを選べる部品)とか有効にしてるとずらりっと出てきます。これは逆に使いにくいかもしれないですが…?

管理画面のカスタマイズに躊躇していた方も、ぜひ一度お試しください♪

Twitterはい、ごめんください。
WordPress Advent Calendar 2012 の企画で翻訳について言及している方がいらっしゃったので、途中で投げ出しかけてたプラグインを日本語化して作者の方に送ってみました。

参考:プラグインの翻訳をして作者に送ってみよう! #wacja2012 | notnil creation weblog

追記:2013.01.10

バージョン 4.0.4 が発表されたので日本語化しました。翻訳用にソースを改変しているので、プラグイン用のファイルがまるごと入っています。

Tweet Old Post 4.0.4 日本語対応版(非公式)

— 追記ここまで —

PoEdit のソースから更新機能を使ったら、翻訳箇所を自動的に見つけてくれたのでとっても捗りました!(テキストエディットでちまちま行番号を設定してた→そして投げ出してた)

この記事の執筆時点では 4.0.3 が最新バージョンです。翻訳ファイルが入ってなかったり、翻訳対応箇所が少なかったりしたので、色々弄りました。作者の方にはファイルを送ってあるので公式アップデートがあるといいなあ。

使い方

日本語対応ファイルは 4.0.3 の差分と修正ファイルしか入っていません。
そのため、まずは本体(v4.0.3)をダウンロードして、日本語版のファイルを上書きしてください。

サーバにアップロードするのは、本体と mo ファイルのみで問題ありません(po ファイルは翻訳の元ファイルなので実際には使用しません)。

公式サイト:WordPress › Tweet Old Post « WordPress Plugins

Tweet Old Post 4.0.3 日本語対応ファイル(非公式)

 

そもそも Tweet Old Post ってどんなプラグイン?

過去に投稿した記事を、ランダムに選んで自動でツイートするプラグインです。

  • 設定した過去の期間の投稿記事をランダムでツイートします。
  • ツイートしたくないカテゴリを設定できます。
  • ツイートしたくない投稿も選べます。
  • 短縮 URL サービスを使えます。(でも goo.gl は未対応)
  • 1日に何回ツイートするか設定できます。

CURL(Client URL:外部サイトの情報を簡単に弄れるライブラリ)を使用しているので有効なサーバでないと使えないという難点はありますが。(ロリポップは使えますよ)

文字化けするって噂なんだけど?

要するにマルチバイト言語に対応していなかったことが原因なので、日本語対応した際に条件分岐を入れておきました。mb_strlen という関数があった場合は、そっちを優先するように、など。

作者のサイトには色々要望が寄せられているので、もしかしたら近々アップデートするのかな、とも思っていたのですが、そうなったらまた翻訳しなおしますかねー。

ちなみに作者の方はインドの方。そんなにカレー食べないってホントですか。

23. 12月 2012 · [WP] Tweet Old Post が自動投稿されないのでソースを直したよ はコメントを受け付けていません。 · Categories: WEB制作 · Tags: , ,

Twitter先日、日本語化を行った Tweet Old Post (4.0.3) ですが、イマイチ自動ポストされないのでソースを見なおしてみました。

wp-cron にスケジューリングされているわけではないようなので、何がトリガーになってるのかなと調べたところ、init で呼んでることがわかりました。つまり、ページを読み込むたびに呼んでるんですねえ。

add_action(‘init’,’top_tweet_old_post’);

init
WordPressの読み込みが完了し、ヘッダーが送信される前に実行する。$_GET や $_POST トリガーを妨害するために使える。

wp-cron も擬似的な cron で、誰かのアクセスをトリガーにして動作するため、アクセスが少ないとうまく動作しないかもしれません。ですが、これはちゃんと動いていることが判りました。

[Tweet Now] ボタンで投稿はできるので、この辺りを追ったところ、どうやら初期の設定で「最初にツイートした時間」が登録されないバグがあるようでした。wp-cron にでも入れようかと思いましたが、ここを解決したら動いたので、メモ。

top-admin.php の更新完了部分( //successful update message を探すと良いです )で、1行を追加します。

top-admin.php を書き換えたら保存し、設定画面で設定内容を保存します。
これで最終ツイート時刻を設定できるので、あとは○時間後に(アクセスがあれば)動作します。

もし自動的に動かないよー、という方はお試しください。

はい、ごめんください。ひじり@雪国のウェブ解析士です。

Tomoyuki Koyamaさん からいただいた WordPress Advent Calendar 2012WEB解析 Advent Calendar 2012 の23日目のポストです。

最初は WordPress で Trust Form のあたりを掘り下げようかと思っていたのですが、せっかくならウェブ解析と組み合わせてしまいます(のめしじゃないよ!のめしじゃないよ!)

技術的なことはたくさんの方に言及されていますので、運用のコツを少々(と言っても長文になってしまいました)(2つのテーマを合わせてるから尚更)。

WordPress は SEO に最適!

WordPress は SEO と親和性が高いと言われていますが、その根拠は SEO を簡単にできるシステムだからです。何より、Google のウェブスパムチーム(=検索エンジン開発部門)の責任者である Matt Cutts 氏が WordPress を推していることは大きいですね。

(ちなみに SEO「対策」って言葉は変だと思っている一人です。SEO=検索エンジン最適化 なので、そのままでいいじゃないかと小一時間…)

参考:Google検索の責任者やSEOの天才も認めるWordPressのSEO効果 | WordPress(ワードプレス)ナビゲーター・ドット・コム

どうして SEO が簡単なの?

最適なプラグインがある、というのは1つの答えですが、イチオシは「質の良いコンテンツを簡単に増やせる」に尽きると思います。なら Movable Type でも他の CMS でもいいでしょ、という声も聞こえてきそうですが、導入の手軽さからも、やっぱり WP かなあと。

例えば記事を投稿する際、カテゴリーとタグを設定したとします。

すると「トップページ」「年月アーカイブ」「カテゴリーアーカイブ」「タグアーカイブ」「著者アーカイブ(あれば)」の5種類のページを作成してくれます。試しに自分のブログURLを検索してみてください。ほとんどのページがインデックスされているのがわかるかと思います。

それはブログだからでしょ、ホームページとしてCMSを使う場合はあまり意味がないんじゃ?
そう思われた方、もったいないですよー!

  • CMSとしてホームページを構築しました。
  • ソーシャルブックマークもつけました。プラグインで簡単でした♪
  • 固定ページはワードと同じように簡単に更新できますよ!

・・・って、これじゃ WordPress 使ってる意味がありません!わぷーが泣きます!しょんぼりします!
質の良いコンテンツを増やす、これこそが WordPress で SEO をするコツです。

質の良いコンテンツって何?

質の良いコンテンツ = ユーザーのニーズにあったコンテンツ です。

固定ページでも、文字数が少なくても、質が良ければ SEO になります。場合によっては、140文字のツイートが SEO 効果をもたらすことだってあるのです。ただ1ページの情報が少ない場合、ソーシャルメディアで何らかの反応があるかもしれませんが、意図していない場合がほとんどなので、長引くことはほとんどありません(一般的なホームページの場合です)。

良いコンテンツづくりは、5つのポイントに絞って考えると良いです。

  1. このホームページを作る目的(理由)はなんだろう?
  2. このホームページの目標(ゴール)はなんだろう?
  3. このホームページに興味を持ってくれるのはどんな人?
  4. このホームページの目標を達成するには、どうすればいいかな?
  5. このホームページに来た人が、探し求めている情報はなんだろう?

これらが具体的になっていれば、必要なコンテンツは決まってきます。考えれば考えるほど増えてきますが、WordPress なら簡単に対応できるので、結果として充実するわけですね。

例をあげてみます。

とある地域に、一軒のレストランを出店することにしました。子ども連れ向けに、広い部屋があります。宅配は行なっていません。レストランですがアイスクリームにこだわりがあります。

このホームページを作る目的(理由)はなんだろう?
お店を認知させるため
このホームページの目標(ゴール)はなんだろう?
店舗に足を運んで欲しい(行動喚起)
このホームページに興味を持ってくれるのはどんな人?
出店地域周辺に住んでいる方々。アイスが好きな方。
このホームページの目標を達成するには、どうすればいいかな?
地域情報のサイトに登録する。アクセス方法をわかりやすくする。写真をたくさん載せる。小さなお子さんがいても大丈夫とアピールする。
このホームページに来た人が、探し求めている情報はなんだろう?
お店のメニュー、場所、価格、駐車場、アイスのメニュー、・・・等々

・・・さて、5つの項目を書いていく中で、「ん?こ、これは…!」と何かに気づけたらおめでとうございます。

自己満足にならないために

お客様の視点になって色々整理すると方向性が見えてきますが、最後の「探し求めている情報」のネタが充実させるべきコンテンツになるわけです。あれもこれも載せたい!と思い始めると、それが無いうちは公開できないと思い込むかもしれませんが、公開後も簡単に更新できるので心配ありません。そう、WordPress ならね。

キーワードを意識してコンテンツが充実してくれば、必然的に SEO になるので、そこそこのアクセスが稼げるようになります。
ただ、アクセスが増えた減った、ということに一喜一憂するだけでなく、そのデータから更にニーズを検証できれば、もっとお客様にアプローチできます。

「店舗はこの人気が高いけど、この商品のアクセスが多い…なんでだろ?」
「おや、このタグのアーカイブページ、意外とアクセスが多いなあ」
「このページ、見て欲しいのにアクセスが伸びないなあ…どうしたらいいんだろう?」
「ホームページを見て電話してる人、いるのかなあ?」

こんな疑問が出てきたら、ぜひウェブ解析を行なったり、依頼してみてください。「なんだろう?」→「こうかも?」→「やっぱりこうだ!」→「ならこうしてみよう」と、色々なことがわかります。

また、ウェブ解析はデータありきではなく、ビジネスを全体にした仮説ありきなので、効率的に増やすべきコンテンツがわかるようになります。

初級ウェブ解析士のテキストが体系的にまとめられているので、資格取得を目指さなくても、読み物としてもオススメです。

初級ウェブ解析士は、アクセス解析のデータを読めるようになります。
上級ウェブ解析士は、データから成果への道筋を示すことができます。

フットワークの軽い WordPress で、お客様に喜ばれるホームページを作ってくださいね!

WordPress Advent Calendar 2012、次回は bren さんです!WEB解析 Advent Calendar 2012 への参加者も最終日までお待ちしてますよー!

22. 12月 2012 · [SEO] 301 リダイレクトと rel=”canonical” の比較と注意したい点 はコメントを受け付けていません。 · Categories: ウェブ解析 · Tags: , ,

Finger face with a questionはい、ごめんください。中盤からアドベントカレンダーを落としまくっているという失態をかましておりますが、今年の反省は来年に生かします。鬼がプークスクスしてても気にしない。

さて、今回はウェブ解析とは若干離れますが、リンクの正規化と rel=”canonical” が少し気になったのでこの話題。SEO 的には単純にこっちがおすすめ、というものではなく、使いどころを間違えないように使うと効果を発揮するよ、という内容です。

301 リダイレクトって何?

そのページにアクセスした際に、301(Moved Permanently)というステータスコードを返す(通常は200)ことで「このページは別のURLに変わってしまったよ」とお知らせし、別のURLへ自動的に遷移(リダイレクト)させます。PHP や .htaccess などで設定することができます。

リニューアルでページのURLが変わってしまった場合や、別のドメインに移転した際によく使います。「このページは移転しました。3秒後に云々」というページを作らなくても、自動的に新しいURLに遷移してくれます。

WordPress の mod_rewite のリダイレクトで返されるステータスコードは?

WordPress でパーマリンク設定をすると .htaccess にこんな行が現れます。

RewriteRule . /wordpress/index.php [L]

おや、R(Redirect)のコードを指定していませんね。省略されているようですが、ステータスコードは何を返しているのでしょう?

Chrome のデベロッパーツールで確認したら、こんなのが返されました。

Request URL: http://mekemoke.jp/?p=804
Request Method: GET
Status Code: 301 Moved Permanently

ステータスコードは 301 を返していることがわかりました。デフォルトでは 302 を返すらしいので、サーバによって違うのかも知れませんね。

rel=”canonical” って何?

HTML の HEAD タグ内で、下記のように使用します。

<link rel=”canonical” href=”http://example.com/list.php” />

WordPress の吐き出すヘッダーで見かけたことがある方も多いのではないでしょうか。

そもそも rel ってどういう意味?

リンクの関係を示す link タグの rel は relation の略(他に rev というのがあってこれは reverse relation の略)で、リンク元(タグのあるページ)から見たリンク先( href 属性の値)の関係性を表します。

なら canonical ってどういう意味?

canonical (カノニカル) は 「基準」や「正統」などを表す「canon」に「~的な」「~の性質の」という意味の「-ical」が組み合わさったことで「基準の」「正統な」という意味を持ちます。Google と Microsoft が作った独自の値です。

つまり先程の例は「このページの基準となる URL はこのURLですよ」という情報を検索ロボット(クローラー)に与えるわけですね。

ページの移転は 301 リダイレクトで、ページの重複は canonical で対応しよう

WordPress などで動的にページを作成していたり、ショッピングカートなどのシステムが入っていると、同じ内容を表しているのに URL が違う、ということが起こりえます。

  1. http://www.example.com/xmas/sweets/cakes.html
  2. http://www.example.com/?category=xmas&type=sweets&p=2
  3. http://example.com/shop/?id=123&category=456&type=7

上記はすべて同じクリスマスケーキの紹介を表示しているとすると、重複するページが3つ存在することになりますね。

本当は 1. の URL で見せたいけれど、システムが自動で別の URL をどうしても出してしまう、という時には canonical を設定すると簡単です。パラメータさえ渡すことが出来れば、リダイレクトでも良いのですが。

同じ内容が見えるなら、ほっといてもいいんじゃないの?

毎回URLを気にしている閲覧者は多くないと思いますので、チラシに掲載する場合やURLを綺麗に見せたい場合以外は、確かにあまり問題ないように見えますね。

ですが、SEO的には重複したコンテンツをあまり良しとしません。
ページランクも分散されてしまうので、「色々URLができちゃってるけど、みんなここの内容と同じだよ!」という情報をクローラーに知らせたほうが良いでしょう。ただその分、2や3のようなページのページランクは少し下がります。

301 リダイレクトの落とし穴

どちらかと言うと 301 リダイレクトのほうを推奨していますが、1つの固有のURLにリダイレクトさせてしまうと、システムにパラメータを送れずに正常に動作しなくなる可能性があります。リダイレクトする場合はパラメータもちゃんと送るようにしましょう。

canocical の落とし穴

重複コンテンツの基準となる URL を設定するものですが、安易に「じゃあトップページにまとめよう」なんてすると、トップページ以外の検索インデックスがすべて消失してしまうこともあるようです。

また、基準となるページはちゃんと整理しておきましょう。A のページは B に、B のページは A に、などとぐるぐる循環させてしまうと、クローラーを混乱させてしまい、どちらもインデックスされません。

簡単に比較してみた

301 リダイレクト canonical 設定
元のページの検索インデックス 消える 大抵は残る
ページの自動遷移 自動で遷移する 自動で遷移しない
リニューアルでURLが変わった時 超おすすめ 代替手段として
システムによるURLの正規化 注意が必要 超おすすめ

参考サイト

上記のソースや情報は下記のページで詳しく解説されています。

rel=“canonical”タグと301リダイレクトの違いは? どちらを使うべきか? | 海外SEO情報ブログ
Googleが認めた、「301リダイレクトでPageRankが失われる」 | 海外SEO情報ブログ

rel=”canonical” 属性について – ウェブマスター ツール ヘルプ
正規化 – ウェブマスター ツール ヘルプ

29. 11月 2012 · [WP] バナーは wp_list_bookmarks と GA でイベントトラッキングすることにした はコメントを受け付けていません。 · Categories: WEB制作 · Tags: , ,

Pretty Awesome 3D Metal WordPress Logo内部コンテンツへ誘導するためのもので、広告とは毛色が違い、URLが長くなるとちょっとイヤンな感じだったので Ad Rotate はやめました。

でもどれくらいクリックされたのか追跡したいので、管理しやすくすることも踏まえ、WordPress のリンク機能と、Google Analytics のイベントトラッキング機能で対応することにしました。

2012/11/30 追記:onClick → onMousedown に変更してみました。アウトリンクのタイムラグで取得できない場合もあるのね…なるほど。

参考:Googleアナリティクスでの外部リンククリック計測3つの手法の利点と欠点を整理してみた | Web担当者Forum

まずはリンクに登録

カテゴリーを設定し、バナー(今回はアフィリエイトリンクではなく、内部コンテンツへ誘導するものを指します)のタイトル、リンク先、画像URLを設定します。

テーマファイルに設定

リンクに登録したものは、 wp_list_bookmarks で呼び出せます。
ただ、標準機能ではアンカータグの内部に属性として値を設定することが出来ないため、PHPでちょいと置換してあげることで対応できます。ちなみに、Google Analytics をすでに導入済みであることが前提です。(ヘッダに非同期用のスクリプトが入っていること)

[CAT_ID] にはリンクのカテゴリーIDを入れてください。

$ga_tracking の [category] は、たとえば BannerClick などが良いでしょう。[action] は特に”アクション” にこだわる必要もないので、カテゴリースラッグあたりを入れておけばわかりやすいと思います。たとえば sidebar とか。

上記では p タグで縦に並べて表示させたかったのですが、設定項目は本家のパラメータを参考にしてみてください。

参考:テンプレートタグ/wp list bookmarks – WordPress Codex 日本語版

これでテーマファイルを保存すると、トラッキング用のタグが入っているのがわかるでしょうか。これで広告やバナーの管理がだいぶ楽になるのではないかなと思います。

PHPがよくわからないからどう書けばいいのかわからないーという方は、コメントくださいな。

27. 11月 2012 · [WP] Twitterでブログ記事の概要などを表示できるようにしてみた(Twitter Card) はコメントを受け付けていません。 · Categories: WEB制作 · Tags: , ,

@kasumii さんの記事を見ておおーっと思ったので取り入れてみました。

参考:ブログをTwitter Cardsに対応してサムネイル画像や記事の概要が表示されるようにしてみた | memobits

方法1 : header.php に追記する

meta タグを下記のようにすればOKです。description の部分はトップページならブログ自体の概要、投稿記事などならその記事の抜粋を表示するようにしています。

方法2 : プラグインを使う

Twitter Card というプラグインそのものズバリもあるのですが、WordPress SEO by Yoast を使えば一発です。

管理画面左メニューの「SEO」→「Social」の画面最下部にある「Add Twitter card meta data」にチェックを付け、「Site Twitter Username:」に Twitter のアカウント名(@いらないですヨ)を入れて保存するだけ。

これで head タグ内に Twitter Card 用の meta タグが挿入されます。こんな感じ↓

実際にどう見えるのか確認しよう

Preview your Twitter Card | Twitter Developers

上記 URL に Twitter のアカウントでログインしてから、適当に記事の URL を入れて [Preview Card] をクリックします。投稿後にどんな表示になるか、プレビューを確認できます。

プラグインで設定した場合、トップページには反映されないのでご注意ください。ですんで、入力する URL は個別記事の方が良いです。

内容を確認したら申請しよう

Participate in Twitter Cards | Twitter Developers

Contact Information には既に情報が入っているので、確認だけでOKです。Website Information に、下記のように情報を入力します。

大体1週間くらい審査期間があるようです。ちなみにウチは header.php いじってから申請し、プラグインあることに気づいて、わちゃわちゃしてたら「Please resubmit your Twitter Cards request」というメールが送られてきて、「twitter:description がないよ!」と言われ再審査となりました。トホホ。

12. 11月 2012 · [WP] posts_nav_link が WP_Query のループで動作しない理由と解決策とスニペット はコメントを受け付けていません。 · Categories: WEB制作 · Tags: , ,

Wordpress Button Closeup

結論から言っちゃうよ

  • new WP_Query でクエリを新しく作ったものには posts_nav_link が使えない
  • posts_nav_link(前後記事へのリンクを張る)を使いたい場合は query_posts を使おう
  • new WP_Query を使いたい場合は WP-PageNavi を使ってページングしてしまおう

なぜ posts_nav_link が使えないのか

参考:get_posts_nav_link (WordPress Function) – WPSeek.com

ソースを見たら一目瞭然でした。global $wp_query; として、大元のクエリをベースにしているためです。新しく作ったクエリを引数で渡せないかなと思いましたが、そのままでは無理そうですね。

その点、query_posts はメインのクエリ($wp_query)を変更するので posts_nav_link を使えるというわけです。

WP_Query × WP-PageNavi

WP-PageNavi は 1,2,3… と番号でページングしてくれるプラグインです。これにはクエリを渡せるので、下記のように使えます。

最後は wp_reset_postdata(); で締めましょう。新しく作ったクエリを消して元に戻す、というイメージで。

query_posts × posts_nav_link

posts_nav_link もループ外で使用します。

最後は wp_reset_query(); で締めましょう。元のクエリに戻す、というイメージで。

今回は結果的に、WP_PageNavi を入れたほうがスッキリしたのでプラグイン採用しましたよ。

ステップメールとは、商品を購入するなどして登録したメールアドレスに、指定された日数ごとに自動的にメールを送信するサービスです。ウェブのマーケティング手法としてもてはやされていますが、導入するには結構な費用がかかることが多いのと、仕組みがよくわからなくて敬遠している、という状況が多いのでしょうか。
メールマガジンは「1対多」ですが、ステップメールは「1対1」というアプローチが得意なので、積極的に使ったほうがいいのではないかと思います。

このステップメールを WordPress の Cron 機能でできるプラグインがあるんじゃないかと探してみたら、良さそうなのがありました。Github にもソースを公開していて、一番信頼できそうな下記をオススメします。

WordPress › WP Autoresponder And Newsletter Plugin « WordPress Plugins (2012/11/9 : ver.5.2.8)
( Requires: 2.8.2 or higher / Compatible up to: 3.3.2 / Last Updated: 2012-3-3 )

特にこの手のプラグインは、間違っても公式以外のところから入手してはいけません。こんな報告もあったようです。詐欺プラグインに要注意!

WordPress › フォーラム » stepmail-express のカスタマイズを教えてください!

WP Autoresponder はバグフィックス等(下記参照)を行なっている最中のようなので、使い方は後回しにして、今回はひとまず紹介に留めておきます。新バージョンが待ち遠しいですね。

インストールにあたって、よくありそうな事をまとめました。

日本語は使える?

プラグイン自体は全て英語ですが、日本語は問題なく使えるようです。

インストール時にこける

Fatal Error が出る場合はPHP4の環境です。PHP5でないと使えません。

設定後、管理画面で表示が崩れる

余計な </div> が入っていることが原因。
バグレポートはなされているので次期アップデート時に対応できるとのこと。

参考:Makes the admin footer appear over the post-text editor · Issue #115 · rajasekharan/WP-Autoresponder

これも7ヶ月前のものなので、今すぐ何とかしたいという場合は customizeblogemail.php の260行目付近の </div> を消すかコメントアウト(HTMLで)すればOK。

日本語で使いたい

マルチバイト対応できるようには計画しているようなので、それを待ってから日本語化すれば使えそう。

参考:Multi-language support · Issue #79 · rajasekharan/WP-Autoresponder

メールが送信されない(FAQより)

2つの原因がありそうです。

WordPress はサーバの cron 設定を行なうわけではなく、アクセスによって擬似的に cron を動かしています。つまり、アクセス(トラフィック)が少なければ動作しません。これを解決するためには、WPをインストールしたディレクトリにある wp-cron.php を cron ジョブに設定してください。

もうひとつは、メールの送信制限がかかっている場合があります。「Newsletters」>「Settings」から1時間あたりに送信できるメールの数を設定できます。デフォルトでは100になっていますが、0(無制限)にするか数値を上げてみてください。