最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

hooks - add_image_size not working with after_switch_theme

matteradmin5PV0评论

This is a weird one - this exact code works with after_setup_theme but not with after_switch_theme. Of course I would rather use after_switch_theme because after_setup_theme runs all the time - but it just will not work.

add_action( 'after_setup_theme', 'wpdocs_theme_setup' );

function wpdocs_theme_setup() {
    add_theme_support( 'post-thumbnails' );

    add_image_size( 'hero_image', 1920, 800, true);
    add_image_size( 'hero_image_md_lg', 991, 490, true);
    add_image_size( 'hero_image_md', 767, 460, true);
    add_image_size( 'hero_image_sm', 549, 575, true);
    ...
}

For reference: yes, I am switching the theme. Yes, I am regenerating the thumbnails. And in my wpdocs_theme_setup function I'm also adding custom roles that work regardless of which hook is being used. Any thoughts?

This is a weird one - this exact code works with after_setup_theme but not with after_switch_theme. Of course I would rather use after_switch_theme because after_setup_theme runs all the time - but it just will not work.

add_action( 'after_setup_theme', 'wpdocs_theme_setup' );

function wpdocs_theme_setup() {
    add_theme_support( 'post-thumbnails' );

    add_image_size( 'hero_image', 1920, 800, true);
    add_image_size( 'hero_image_md_lg', 991, 490, true);
    add_image_size( 'hero_image_md', 767, 460, true);
    add_image_size( 'hero_image_sm', 549, 575, true);
    ...
}

For reference: yes, I am switching the theme. Yes, I am regenerating the thumbnails. And in my wpdocs_theme_setup function I'm also adding custom roles that work regardless of which hook is being used. Any thoughts?

Share Improve this question asked Mar 20, 2019 at 1:24 rickibarnesrickibarnes 1578 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

The reason adding custom roles works on after_switch_theme is because roles are saved in the database. In fact, because it saves to the database, it should not run on after_setup_theme.

add_image_size(), on the other hand, does not save anything to the database, so needs to run on every page load, and needs to be hooked on a hook that runs for every page load. So after_setup_theme is the correct hook to use.

Post a comment

comment list (0)

  1. No comments so far