4

フックを使用してテーマのアクティベーションで画像サイズを設定しようとしていますafter_setup_themeが、実際には呼び出されないようです。なんで?

if( !function_exists('theme_image_size_setup') )
{
    function theme_image_size_setup()
    {
        //Setting thumbnail size
        update_option('thumbnail_size_w', 200);
        update_option('thumbnail_size_h', 200);
        update_option('thumbnail_crop', 1);
        //Setting medium size
        update_option('medium_size_w', 400);
        update_option('medium_size_h', 9999);
        //Setting large size
        update_option('large_size_w', 800);
        update_option('large_size_h', 9999);
    }
}
add_action( 'after_setup_theme ', 'theme_image_size_setup' );

代わりに、回避策を講じていますが、フックがある場合は最適ではありません。

if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) {
    theme_image_size_setup();
}

after_setup_themeこれは機能します...しかし、フックに応答がないのはなぜですか?

4

4 に答える 4

3

おそらく問題は、この文字列内に余分なスペースがあることです'after_setup_theme '
次のようにしてみてください。

add_action( 'after_setup_theme', 'theme_image_size_setup' );
于 2012-12-03T13:56:38.327 に答える
1

after_setup_themeは、ページが読み込まれるたびに実行されます。そのため、より良い解決策ではありません。

于 2014-02-15T07:04:34.383 に答える
0

WPMU 環境で WP 3.9 を使用すると、テーマを切り替えるすべてのものと呼ばれる switch_theme というアクションがあります。

このアクションが呼び出されると、次の $_GET パラメータが渡されます: action=activate, stylesheet=

mu-plugins/theme-activation-hook.php に新しいファイルを作成しました

add_action('switch_theme','rms_switch_theme');
function rms_switch_theme($new_name, $new_theme='') {
    if (isset($_GET['action']) && $_GET['action'] == 'activate') {
        if (isset($_GET['stylesheet']) && $_GET['stylesheet'] == 'rms') {
            // perform the theme switch processing,
            // I echo the globals and immediately exit as WP will do redirects 
            // and will not see any debugging output on the browser.
            echo '<pre>'; print_r($GLOBALS); echo '</pre>'; exit;
        }
    } 
}
于 2014-04-22T15:26:27.337 に答える