カスタム投稿のページ送りが 404 Not Found!の対処法

[2013.9.12追記]
初出からずいぶんたって、今ではWordPress 3.3から登場した「pre_get_posts」フックを使う方法が主流となってきました。記事の後半にサンプルコードとともに追記しましたのでご参照ください。


[初出時のテキスト]

WordPress 3.0で導入された新機能の一つ「カスタム投稿タイプ」。本格的に使ってみようという段になって、思わぬ壁にぶつかってしまいました。「カスタム投稿タイプ」で作った投稿群をカテゴリアーカイブで表示したとき、ページ送り(ページネーション)つまり

http://www.example.com/archives/category/foo/page/N(Nは数字)

といったURIで表記されるページが404 Not Foundを返すのです。

結論からいうとこの問題、『Custom Post Type Category Pagination Fix』というプラグインで解消することができました。そこで、カスタム投稿タイプの設定やコードなども交えて、解決までの道のりを紹介しようと思います。同じような悩みでぶつかっている方のご参考になれば。

続きを読む カスタム投稿のページ送りが 404 Not Found!の対処法

『さくらのレンタルサーバ』にuuenviewをインストール

先日からときどき書いていたWordPressの案件(自作プラグインを作った、というアレ)。

ひとまず完成したものの、定期的にバックアップをとる必要があり、その下準備としてバイナリファイルをASCIIテキストにエンコードするツール『uuenview』をインストールすることにした。

  1. 対象となるディレクトリを tar cvzf で圧縮
  2. uuenview を使い、Gmailアカウント(新規取得)に添付ファイル付きメールとして送信

以上の手順をcronで自動化することを到達点とする。なぜこういうことが必要かというと、WPのプラグイン『WordPress Database Backup』ではデータベース(テキストファイル)のバックアップしかできず、アップロードした画像ファイルなどがスルーされてしまうからだ。

続きを読む 『さくらのレンタルサーバ』にuuenviewをインストール

WordPressにて 特定ページの本文をトップページに表示する方法

[2013.7.3追記]
ベータ版での情報ですがWordPress 3.6から、テンプレートタグ the_content(), get_the_content() に任意の記事IDの本文を取得できるオプションが追加されるようです。詳しくは記事の後半にて。

[2013.10.4追記]
……と思ったら3.6正式版では上記のオプションが実装されませんでした 🙁 残念。


ちょっとわかりづらいタイトルでスミマセン。

今とりかかっているショップサイトの案件で

  • トップページのテンプレート(home.php)が存在している
  • ショップ紹介の静的ページが存在している(テンプレートは page.php )

という状況下で「ショップ紹介の本文をトップページにも表示したい」というリクエストがありました。

続きを読む WordPressにて 特定ページの本文をトップページに表示する方法

PHPの opendir 関数は「PHPの実行ファイルを基準にした相対パス」で

ども。鉄王です。

実に初歩的な躓きです(汗)。

PHPにあります opendir という関数。ワタクシ、てっきり.phpスクリプトを基準にした相対パスで対象ディレクトリを指定するものだと思っていたんですが……

続きを読む PHPの opendir 関数は「PHPの実行ファイルを基準にした相対パス」で

XAMPPの『Mercury/32』を使って外部にメールを送る設定(OP25B対応)

[2019.1.14追記]
メールフォームの動作確認など、特に外部にメール送信する必要がなければ『MailHog』を使う方法がより簡便です。よろしければ下記の記事をご参照ください。


ども。鉄王です。

いま、自社のウェブサイトをせっせと作っております。今回は全面的にWordPressを導入したサイトにしようということで(会社としても制作のノウハウを溜めることになるし)、ローカルにXAMPP環境を構築して試行錯誤しながらやっている最中です。テンプレートの修正がすぐ反映されるのがいいですね、ローカルに環境をこしらえると。

で、ずっと後回しにしていたメールフォームまわりの構築に取りかかっていったわけです。

続きを読む XAMPPの『Mercury/32』を使って外部にメールを送る設定(OP25B対応)