web-dev-qa-db-ja.com

一時的な関数が欲しいだけならどうなるでしょうか。

一時関数が欲しい場合はどうなりますか?(AccessをWordpressのテーブルに変換するためのコンバータです)。何度も実行したいので自動化したいのですが、add_action()でフィルタを追加した後に関数を実行する方法がわかりません。変換が終わったら、関数を削除します。

http://url/index.php?convertのようなことをしたい

function addcoursecategoriesfromaccess() {
    //code for converting the table
}
add_action('convert','addcoursecategoriesfromaccess');

//If I type http://url/index.php?convert then I want the addcoursecategoriesfromaccess()  to execute
if ($_REQUEST['GET'] == 'convert') {
    do_action('convert');
}

私は非常に単純なものが欠けていると思いますが、WPプログラミングの初心者として私はあなたが私を助けることができることを願っています:-)私はテーマのfunctions.phpの中のコードです。

使用例代わりにinitフック。例えば;:

if (isset($_GET['convert'])) add_action('init', 'yourfunction');

(ただし、もっと良いチェックをしてください。?convertは何かを意味する可能性があります。そして、まだ実行されていないなど、ユーザー権限をチェックしてセキュリティを保護します。)

2

代わりにinitにフックすることができます

add_action( 'init', 'addcoursecategoriesfromaccess' );
function addcoursecategoriesfromaccess() {
     if ( ! filter_has_var( INPUT_GET, 'convert' )
         return;

     // code here
}

それからそれを実行したいときは、あなたが書いたURLにアクセスしてください({url} /?convert = 1)そしてaddcoursecategoriesfromaccessが実行されます。

2
Zogot