[WordPress] REST APIで静的サイトに更新可能なコンテンツを作成する

クライアントが更新できるようにして〜という雑な要望に応えるべく、我々は都度立ち上がってきた。
これまで様々なツールを用いてきたが「とりあえずWordpress使っとけばよくね?」という結論に至って幾星霜。
長い月日のなかで思い知らされたのはWordPressテーマのフルカスタムは面倒臭いという現実であった。

救世主REST API降臨

Version4.7くらいだったろうか、それまでプラグインだったREST APIが標準搭載になったのは。
これで「Wordpressでコンテンツを更新できるサイトを作るならカスタムテーマを作成しなければならない」という呪縛を断ち切れる、と人々は喜んだ。

さて実際にREST APIを利用して更新できるコンテンツを作ってみようとした時に、一体何をすればいいのか?
この記事は静的に作られたサイトで更新が必要な部分だけをWordpressに依存させるべく、ページを作るのに必要なJSONをREST APIで出力するまでの手順についてまとめたものです。
“[WordPress] REST APIで静的サイトに更新可能なコンテンツを作成する” の続きを読む

[WordPress] TinyMCE(v5) カスタムボタンの追加とショートコード/HTMLの相互変換

TinyMCEにショートコードを挿入するカスタムボタンを追加したはいいが、
見た目がイケてないのでビジュアルエディタではHTMLタグに変換してスタイリングしたいなあと思いましてね、その方法をぐぐってたら自分が昔書いた記事にたどり着くっていう…

[wp] 自作したショートコードをビジュアルエディタ内で置換する

そりゃ9年も経ってたら書いたことすら忘れますわ。

TinyMCE自体も記事を書いた当時多分バージョン3だったのが今はバージョン5になってて記事のソースじゃ動かないんで、こちらに現行のWordpress(5.x系)で動くものを載せておきます。

“[WordPress] TinyMCE(v5) カスタムボタンの追加とショートコード/HTMLの相互変換” の続きを読む

[WordPress] WP Offload Media Lite プラグインに データベースを殺されかけた話

WP Offload Media Lite プラグインは、Wordpressに保存される画像をAmazonS3などのストレージにうpしてくれるやつ。
Jetpackにwordpress.comの配信サービスでやっつけてくれるお手軽なオプションがついてるので、あえてAmazonS3を使おうという個人ユーザーは少ないでしょう。
AmazonS3を使おうとするのはほとんど商業ベースだと考えられます。なので同じ轍を踏んでヴァーとならないために出来事をまとめました。

⚠️ この記事はWP Offload Media Lite を使ってない人には関係ない内容となっています。
“[WordPress] WP Offload Media Lite プラグインに データベースを殺されかけた話” の続きを読む

[WordPress] pre_get_postsでカスタムフィールドの値を利用した表示の制御

pre_get_posts() を使うと表示の制御ができる。
根本はWP_Queryなので、ここにまとめたカスタムフィールドのクエリはget_postsとかでも使うことができる。
pre_get_postsの基本的な使い方はググれば色々でてくるんでそちら見てもらうとして、この記事はカスタムフィールドの値を絞り込みに利用するケースについてまとめたものです。
“[WordPress] pre_get_postsでカスタムフィールドの値を利用した表示の制御” の続きを読む

[WordPress] カスタムヘッダーをカルーセル表示に変更する

デフォルトだと画像1枚しか表示できないので、登録されているヘッダー画像をカルーセルでスライドショーしてやろうっていう改造についての覚書。
文中ではSwiperを利用する場合のソースになっているが、別のライブラリでもマークアップ変えたら動くと思う。

なおVer4.9&PHP7環境でこしらえたので他のバージョンでは動かないかもしれない。
(すくなくとも4.7以上は必須)
“[WordPress] カスタムヘッダーをカルーセル表示に変更する” の続きを読む

[WordPress] アーカイブで表示される記事の情報を配列で抽出する

以下は記事IDを配列にするサンプル

<?php 
$post_ids = array();

//@param WP_Post $p
//@param integer $i
array_walk($GLOBALS['posts'], function($p, $i) use(&$post_ids) {
  $post_ids[$i] = $p->ID;
});

var_dump($post_ids);
?>

グローバルにあるWP_Queryの$postsをループ処理すればget_postsとか使う必要はないなと思った。

先日の カスタムフィールドの値を配列で得る やつは、

<?php 
$custom_values= array();

//@param WP_Post $p
//@param integer $i
array_walk($GLOBALS['posts'], function($p, $i) use(&$custom_values) {
  $custom_values[$i] = get_post_meta($p->ID, 'your_key', true);
});

var_dump($custom_values);
?>

こうなる。

上記サンプルはPHP5.3以下だと動かない。

[WordPress] カテゴリー一覧で表示されている記事に登録されたカスタムフィールドの値を配列で得る

例えばこれは Product というカテゴリーがあったとして、登録されている記事に Price というカスタムフィールドがあり、
カテゴリーアーカイブで Price の値を一覧にしたい…という場合に使えるかもしれないやつです。
“[WordPress] カテゴリー一覧で表示されている記事に登録されたカスタムフィールドの値を配列で得る” の続きを読む

Underscoresでカスタムテーマを作る:細かすぎて伝わらないあれこれ編

Underscores で魔改造したメモその6。
細かすぎて伝わらないあれこれ。

  • Compass導入編
  • ナビゲーションメニュー改造編
  • Bootstrap(Sass)導入編
  • ウィジェット作成編
  • ソーシャルボタン対応編
  • 細かすぎて伝わらないあれこれ編

“Underscoresでカスタムテーマを作る:細かすぎて伝わらないあれこれ編” の続きを読む

Underscoresでカスタムテーマを作る:ソーシャルボタン対応編

Underscores で魔改造したメモその5。
シェアボタンとかつぶやくボタンとかを自力でやっつける。

  • Compass導入編
  • ナビゲーションメニュー改造編
  • Bootstrap(Sass)導入編
  • ウィジェット作成編
  • ソーシャルボタン対応編 ←今ここ

“Underscoresでカスタムテーマを作る:ソーシャルボタン対応編” の続きを読む