既にproductionで稼働しているWordpressの開発運用を引き継ぐことになったので、諸々メモっておく(随時更新)。
前提
- phpやったことない
- wordpress知ってるけど使ったことない
- 直近はRuby on Railsの案件を開発運用している。
- 他の言語経験もあるがサーバサイドメイン。フロント(js,css...etc)周りはとりあえずやっている程度。
開発環境
自分で作る必要はなく、とにかく下に任せる。あまりに力作で感動した。
http://vccw.cc/
実際の環境ではapache httpdではなく、nginxを使っているなどの差異があるが気にしない。
REPL
Rubyでいうところのpry、Scalaでいうところのsbt、phpでいうところの?
http://psysh.org/
wordpressでうまいこと使うにはどうしたらいいのかと調べてみるとwpコマンドに使い方が書いてあった。
https://github.com/wp-cli/wp-cli/wiki/Example-Usage#integrate-with-psysh
curl psysh.org/psysh > psysh.phar
wp --require=psysh.phar shell
というかwp shell
でいけた。
レポジトリには何を突っ込めばよいのか
Wordpress開発では本体のコード、Pluginのコードそのものを自らのレポジトリで管理する必要があるが、画像のアップロード先などはignoreする必要がもちろんある。Githubがgitignoreファイル例を作ってくれているのでこれを使う
print debug
面倒なことは抜きにしてprint debugしよう。
var_dump()
とりあえずobjectをぶっこめば良い。
<h2>ランキング</h2>
<div class="ranking">
<?php
$wpp = new WordpressPopularPosts();
$p = $wpp->get_popular();
var_dump($p);
?>
</div>
記事の人気ランキングを表示するので有名なPopular Posts Pluginでも、define('WPP_DEBUG', true);
と設定しておくと、所々でvar_dumpする処理が書かれており、print debugが一般的な印象をうける
定数
wp-config.phpに諸々定義してある
define('WP_DEBUG', false);
上のように定義すると
if (WP_DEBUG)
というように利用できる
themes/foo/functions.php 太り過ぎ問題
Wordpressの基本として、各テーマディレクトリ下のfunctions.phpが読み込まれるため、自分で開発したコードはこのファイルに追加することになる。100,200行ぐらいだったら、ファイル一枚見れば済むので全てをここに押し込めてもいいかなと思うが、今回メンテすることになったのは既に1600行に到達しようとしているので、追加していくのは避けたい。
外出しの方法は以下を参考にした。
プラグイン化するという方法もあるが、ファイルを分けてfunctions.phpで読み込むというのが一番簡単なので以下のようにする
# functions.php
<?php
require_once('includes/ad.php');
RSSの中身を編集したい場合
SmartNewsに最適化したRSSを配信したいとのことで、独自のRSSを用意する必要が出てきた。下のページの通りなので参考にする
WordPressでオリジナルのフィードを配信する方法(入り口)
query_posts, get_posts, the_postとかがどこから来ているのかさっぱりわからん
このドキュメント読もう
https://codex.wordpress.org/Function_Reference/query_posts