LoginSignup
20
23

More than 5 years have passed since last update.

はじめてのWordpress開発メモ

Last updated at Posted at 2015-07-24

既に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
alt

20
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
23