2

特定の親(または祖父母関数、または曽祖父母など)から呼び出された場合にのみ、関数を実行しようとしています。debug_backtrace を使用してやりたいことを達成できますが、これは正しい方法ではないように感じます。たとえば、次のようにします。

function savethepost($post_id) {
$parent = debug_backtrace();
if ($parent[5]['function'] == 'bulk_edit_posts') {
    if ( isset( $_REQUEST['post_format'] ) && $_REQUEST['post_format'] != -1 ) {
        set_post_format($post_id, $_REQUEST['post_format']);
    }
}
}

これは、savethepost関数がbulk_edit_posts関数から呼び出された場合にのみ、Wordpress関数でバックトレースを使用してset_post_format関数を実行しています。これは私が達成しようとしているものです。しかし、このメソッドはデバッグ用なので、このように使用しても問題ないでしょうか? そうでない場合、特定の親関数からのみ来ている場合、どうすれば関数を呼び出すことができますか?

4

1 に答える 1

-1

Debug_backtrace は呼び出しトレースを準備する必要があるため、パフォーマンスが低下します。したがって、これを使用するのは得策ではありません。それでもそのようなロジックが必要な場合は、関数の引数でアーカイブしてみてください

于 2015-11-21T18:11:15.783 に答える