wordpress 投稿画面にカスタムボタン追加(プラグインなし): Nginx キャッシュ削除ボタン
キャッシュの削除をコマンドでやっていたけど、面倒なので wordpress の投稿画面に付けたいと思い立ち、勉強がてら自前でやってみました。
目次
コマンド実行用PHP
サーバの任意の場所にphpファイルを作成。
/php/delete-nginx-cache.php
1 2 3 |
<?php $result = `rm -r /var/cache/nginx/cache/* 2>&1`; echo $result, PHP_EOL; |
ブラウザからアクセスしてみて実行される事を確認。
最初、sudo 付けないでなんで実行出来るんだろ?と疑問に思いしばらく調査してしまった。
cache ファイルの所有者とphp実行のユーザが同じ www-data だからだった。
投稿画面にボタン追加&PHP実行用JS作成
サーバの任意の場所にJSファイルを作成。
/js/wp-settings.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
jQuery(function($) { // 投稿画面でない場合終了 if(!($('#post').length)){ return; } // ボタン追加 var delCacheBtn = '<span id="delCacheBtn" class="button">キャッシュ削除</span>' $('#wp-content-media-buttons').append(delCacheBtn); // クリックでPHP実行 $('#delCacheBtn').on('click',function(){ $.get("/php/delete-nginx-cache.php", function(data, status){ //通信に失敗 if (status != 'success') { alert('通信に失敗しました。'); } // PHPからレスポンス有り data = data.replace(/\r?\n/g,''); //改行コード削除 if (data) { console.log('delCacheBtn: ' + data.charCodeAt(0)); } }); }); }); |
追加する位置は、「メディアを追加」ボタンの並びの最後尾にしました。
今後はこのJSに色々追加すれば管理画面カスタマイズが可能!
管理画面にJSを追加する
wordpress の function.php に追加
1 2 3 4 5 |
/*------------ 管理画面にJS追加 -------------*/ function admin_func() { echo '<script type="text/javascript" src="/js/wp-settings.js"></script>'; } add_action('admin_head', 'admin_func'); |
ここで、「add_action(‘admin_head-post.php’」などと指定したらそのページだけに適用出来る。
今回は管理画面全体。
完成!
????????????
IP制限
IPアドレスをサーバ自身と同じ場合のみに制限してみた。
プロキシキャッシュ 設定の記事はこちら