WordPressでCloudflare Pagesのデプロイフックを使う方法
WordPressでCloudflare Pagesのデプロイフックを使うコードをまとめました。WordPressをヘッドレスCMSとして使っている場合に、追加すると便利です。
公開日:2021年8月19日
管理画面にデプロイボタンを設置
CloudflareにデプロイフックAPIが追加されました。
Introducing Deploy Hooks for Cloudflare Pages
これでCloudflare APIにPOSTしてやれば、デプロイが自動開始されるようになります。
いくつかのサイトで、WordPressをヘッドレスCMSとして使ってみているので、今回はWordPressの管理画面(wp-admin)内にデプロイボタンを設置して、APIを叩いてみます。
コード
まず先にコードから。cURL関数を使っているだけで、エラーハンドリングもしていない簡易版ですが、一応動きます。
// function.php
add_action( 'admin_menu', 'register_cf_deploy_menu_page' );
function register_cf_deploy_menu_page(){
add_menu_page( 'CFデプロイ', 'CFデプロイ',
'manage_options', 'cf_deploy', 'cf_deploy_page', '', 1000 );
}
function cf_deploy_page(){
echo "<h2>Cloudflare Pagesへデプロイ</h2>";
$curl=curl_init("デプロイフックのAPI URL");
curl_setopt($curl,CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA));
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl,CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl,CURLOPT_COOKIEJAR, 'cookie');
curl_setopt($curl,CURLOPT_COOKIEFILE, 'tmp');
curl_setopt($curl,CURLOPT_FOLLOWLOCATION, TRUE);
$output= curl_exec($curl);
echo "デプロイフックを送信しました。";
}
コードの解説
APIとかに慣れている方なら解説は不要だと思いますが、一応軽く解説していきます。
まず、管理画面に何かを追加するには、使っているテーマのfunction.phpに設定を書きます。追加するコードは、
- 追加するページの処理を指定する関数(cf_deploy_page)
- メニューを追加する関数(register_cf_deploy_menu_page)
の二つで構成されます。
add_action
関数の設定ができたら、「add_action」関数で引数に、admin_menuと、作成した関数名を入れること、メニューボタンの追加とクリックした時の動作を規定できます。
register_cf_deploy_menu_page
メニューのラベル、どのページを表示するかなどを指定するだけの関数です。最後の1000については、メニューの順番で、大きいほど下にいきます。
cf_deploy_page
実際にAPIを叩いているのはこの関数です。
APIを叩いた後に「デプロイフックを送信しました。」と表示されるようにしてあります。
このコードを追加するだけで、WordPressにCloudflareのデプロイボタンを追加できます。
新着ノート
-
NUXT3
公開日:2023年2月16日
-
NUXT3
公開日:2023年1月30日
新着コード
-
Vue.js
公開日:2022年4月18日
-
Vue.js
公開日:2022年4月13日