WordFes Nagoya 2015「リアルWordPressフォーラム」質問と回答まとめ(操作・カスタマイズ・技術編)

続きまして「操作・カスタマイズ・技術編」です。
このコマでは、参加者の人数を見て3つの班に分け。それぞれ2〜3つの質問に対する回答を考えていただきました。

こちらに関しては、特に当日寄せられた質問については個別の環境に依存する部分が大きく、時間内で解決するのが結構困難ものもありました。
結果、「みんなで回答を出しあう」というリアルWordPressフォーラムの形通りにいかないテーブルもあり、ちょっと物足りなさを感じた方もいらっしゃったかもしれません。この点は世話役の世話力不足ということで、来年に向けてよりよい進行方法を模索していきたいと思います。

Q. 早い開発環境の作り方開発するマシン上でvagrant(vccw)やvirtualboxなどの仮想環境を使い開発をおこなっていますが、動作が遅く若干ストレスがたまります。何か良い方法があれば、お金をかける方法と、かけない方法の2種類をお聞きしたいです。

ローカル環境でVagrantを使用しているということで、既にある程度の早さはあるはずなのですが、それでも遅いとなると原因はマシンのメモリ不足かもしれません。

  • お金をかける方法
    →PCをハイスペックなものに買い換える。
  • お金をかけない方法
    →VirtualBoxのメモリ割り当てを増やす。

動作の遅さの原因をもう少し詳しく調べてみる必要はあると思いますが、あとはミドルウェアやそのバージョンを見なおしてみるとか、でしょうか。

Q. バグ修正だけでなく機能追加も多いためバージョンアップが怖いです。現在はdebugをonにして開発環境でバージョンアップしてから各ページを目視で警告のデバッグメッセージが出ていないことを確認しているのですが、安心してバージョンアップを行うにはどういうことをすれば良いでしょうか。可能であればチェックも自動化したいです。

  • 完全に自動化することはできませんが、「Theme Check」「Plugin Check WP」などのプラグインを使うことで、コードをチェックして推奨や警告などのレベルに応じたエラーを出力してくれます。
    これを見ながらコーディングすれば、アップデートをしてもエラーが出にくくなると思います。
  • コーディングの際は、極力PHPの関数ではなく、非推奨ではないWordPressの関数を使うのも重要です。
  • 最終的には、目視のチェックも大切だと思います。

Q. 運用しているサイトのページが「safariではRSSリーダーがインストールされていない為開けません」とでてきます。これはRSSリーダーのアプリをインストールしていない端末では閲覧できないのでしょうか?より多くの人たちに見てもらいたいと考えていますが、何か改善策はあるのでしょうか? ※ワードプレスの表示設定でRSS/Atomフィードでの各投稿の表示抜粋のみ表示にチェックを入れています。

SafariのバージョンによってはRSSリーダーが入っていない場合があります。以下の方法などを試してみてはいかがでしょうか。

  • Safariのバージョンアップ
  • RSSを読むように別のソフトを入れる
  • ブラウザの変更

※世話役補足:「より多くの人たちに見てもらいたいと考えていますが」とのことなので、お手元のPCではなく閲覧ユーザーについてのことかと思われます。これに関しては、「RSSを配信するところまではサイト側の問題だけれど、受信したRSS(XMLの記述)をどう処理するかは、ユーザー側に委ねられている、という点を理解しておく必要があります。
RSSをどう解釈して利用するか、サイト運営者側がユーザー側に強制はできません。
RSSは、必要としている人が便利に(加工して)使うためのデータとも言えると思います。そもそもRSSを活用しているユーザーであれば、自分で気に入ったフィードリーダーなりサービスを使っていると思いますし、そうでない(RSSの必要性を感じていない)ユーザーに対してフィードページをどう表示させるかということまでは、サイト運営者側で制御するのは現実的に不可能ではないかと思います。

Q. get_posts()をつかうとき、new WP_Query()をつかうときの差、違いを教えてほしいです。 自分の場合、ループの最後にページナビをつけるときはnew WP_Query()を使い、そうでないときはget_posts()を使ってループを書いています。 これ以外に「こういう場合はこうなるから、こっちを使う」などというのを、事例など踏まえて教えていただけると助かります。

  • new WP_Query()
    →いろんなことができるが、それを自分ですべて設定してやらないといけない
  • get_posts()
    →初期値がひと通り決まっている。「先頭に固定表示」があってもそれを無視して引っ張ってくる。
    suppress_filtersの初期値がtrueなので、フィルターの影響を受けない。

Q. WordPress4.2から絵文字対応してますが、MacやWindowsから簡単に入力する方法はありませんか。できればウィジウィグに絵文字入力ボタンなどあると便利だと思うのですが…

  • 絵文字を画像として挿入するプラグインは以前から「WP Emoji」「TypePad Emoji」などがありましたが、「文字」として挿入するプラグインは探してみましたが、「まだ」ないっぽいです。
  • 絵文字を無効化するプラグインはあるんですけどね(Disable Emojis)
  • 同じことを考えている人も多そうですし、今後、プラグインが出てくるかも?
  • CoreのTracに投げたら改善されるかも?
  • それまではチートシートなどで見ながらやるとか…
  • ちなみに、WordPress Codex(Wiki)の編集画面では、PCのOSごとのショートカットで絵文字一覧を表示して選択できるようになっている。

Q. カスタム投稿を固定ページ化しているのですが、投稿スラッグの後ろに記事IDを付ける方法を教えてください。
(希望→http://example.com/スラッグ/%pagename%/%post_id%)

  • 通常の構成であれば、「Simple Post Type Permalinks」プラグインで可能です。(→参考ページ
  • 詳細なカスタマイズをしたければ「Custom Post Type Permalinks」プラグインで可能ですが、単に「カスタム投稿のパーマリンクを投稿名じゃなくてidにしたい」くらいの要望だったら「Simple〜」でできます。というかそっち使ってほしいです。(開発者談)

※世話役補足:ただしこの質問者さんの場合、そもそものサイト・パーマリンク設計が複雑で、WordPressの仕様上実現が難しそうでした。
WordPressのパーマリンクは結構「できないこと」が多く、仮に無理やり変更してみても「たまたま動いている」という非常に不安定な状況に陥ることがあります。できるだけパーマリンクは複雑化させず、サイト制作前にしっかりと設計をし、ちゃんと運用できるかしっかりと検証してから制作にあたることが重要です。
SEOやアクセス解析の都合上ディレクトリ階層をカスタマイズしたいという気持ちは世話役もよく分かります。
が、SEO的な点で言うとどの程度の効果があるのか、いろいろな説がありますが実際のところはわかりません。アクセス解析の場合は、ディレクトリ階層以外にもコンテンツをグルーピングする方法はあるので、パーマリンクだけでどうにかするというのは避けたほうが良いと思います。

Q. 「Catch Everest」テーマで、投稿にアイキャッチを設定すると本文にも表示されて、写真がダブって表示されてしまいます

content.php内
<?php if( has_post_thumbnail ): ?> から<?php endif; ?>までをコメントアウトしてください。


 

当日お答えした質問は以上です。

この回のリアルWordPressフォーラムについては、セッションスピーカーとしても参加くださった水野さん、先日コアコミッターにも名を連ねたToro_Unitさんのお二人の力なしには振り返れません。ありがとうございました。