溜まったカスタムフィールドの変数をスッキリさせたい。
カスタムフィールドを利用している方には、共感していただけると思うのですが、もう使っていないカスタムフィールドの変数って、正直邪魔じゃないですか?
削除させてスッキリさせたいと思うのですが、この変数は管理画面から削除することができません。
削除しようと思うと、プラグインを導入する必要があります。
でも、カスタムフィールドの変数を削除するためだけにプラグインを導入したくはありません。
私はプラグインの件数は可能な限り少なくするタイプの人間です。
何か方法はないかと探してみると、functions.phpにコードをコピペするだけで、溜ったカスタムフィールドの変数を削除できる方法が見つかりましたので、シェアしておきます。
溜まったカスタムフィールドの変数をスッキリと削除させる方法
functions.phpに以下のコードをコピペして保存してください。
//オブジェクトを生成
new Paka3CustomFieldDeleteKey;
//クラス定義
class Paka3CustomFieldDeleteKey{
//コンストラクタ
function __construct() {
//###################
global $wpdb;
$this->paka3_sql="SELECT meta_key FROM {$wpdb->postmeta}
GROUP BY meta_key
HAVING meta_key NOT LIKE %s";
//###################
add_action('admin_menu', array($this, 'adminAddMenu'));
}
//管理メニューの設定
function adminAddMenu() {
add_submenu_page("options-general.php", 'カスタムフィールド削除', 'カスタムフィールドの変数を削除する', 'add_users', 'customField_delete', array($this,'paka3_sql_page'));
}
//表示する内容と処理
function paka3_sql_page() {
if(isset($_POST['meta_key']) && $_POST['meta_key'] && check_admin_referer('paka3sql')){
$meta_keys = $_POST['meta_key'];
foreach($_POST['meta_key'] as $key){
//カスタムフィールド変数:paka3cssをすべて削除
//echo $key;
$a = delete_post_meta_by_key($key);
}
//更新メッセージ
if($a){
echo '<div class="updated fade"><p><strong>';
_e('Custom field deleted.');
echo "</strong></p></div>";
}else{
//失敗or値がない
}
}
global $wpdb;
$paka3_sql=$this->paka3_sql;
//**管理画面SQL文を実行する(select文のみ)の処理
$r = $wpdb->get_col(
$wpdb->prepare($paka3_sql,'\_%')
);
$paka3_sql_result =$r;
$wp_n = wp_nonce_field('paka3sql');
//表示する内容(HTML)
echo <<<EOS
<style type="text/css"><!--
.paka3form b,
--></style>
<div class="wrap">
<h2>カスタムフィールドのキー(変数)を削除する</h2>
<form method="post" action="" class="paka3form">
{$wp_n}
削除するカスタムフィールドの変数にチェックを入れてください。<br />
<b>注意:その変数と値が削除されます、一度削除するともとに戻すことはできません</b>
EOS;
foreach($paka3_sql_result as $key){
echo <<<EOS
<ul>
<li><label>
<input type="checkbox" name="meta_key[]" value="{$key}" {$checked}/>
{$key}
</label></li>
</ul>
EOS;
}
echo <<<EOS
<p class="submit"><input type="submit" name="Submit" class="button-primary" value="削除を実行する" /></p>
</form>
EOS;
}
}
参考サイト:いらなくなったカスタムフィールドの変数と値を一括削除する。
上記のコードは、アルパカ@ラボ様のいらなくなったカスタムフィールドの変数と値を一括削除する。で紹介されているコードを拝借いたしました。
このコードをfunctions.phpにコピペして保存すると、以下の専用ページが管理画面内に出現します。
【設定】⇒ 【カスタムフィールドの変数を削除する】と移動してください。
あとは、削除したい変数にチェックを入れ、ページ最下部にある【削除を実行する】をクリックすれば、不要になったカスタムフィールドの変数を簡単に削除することが出来ます。
一度削除したカスタムフィールドの変数は復元できませんので注意してください。
まとめ
溜まったカスタムフィールドの変数をスッキリと削除させる方法をご紹介しました。
カスタムフィールドの変数は無理に削除しなくても問題ないのですが、個人的に削除したいと思い立ったので、今回の方法を探し出しました。
コピペと簡単な操作だけで不要な変数を削除できますのでオススメですよ。
コメントを残す