Site cover image

Site icon image 制作メモ

Description is here. The icon, the title, the description can be modified in Notion.

[WordPress] プラグインなどのフィルターをオーバーライド(書き換え)する方法

add_action( 'init', 'my_action1' );
function my_action1() {
    add_filter( 'my_filter1', 'my_function1' );
    my_function1() {
        return 'A';
    }
}

my_filter1 をオーバライドする場合、

add_action( 'init', 'my_action2', 9 );
function my_action1() {
    add_filter( 'my_filter1', 'my_function2', 11 );
    my_function2() {
        return 'B';
    }
}

priority は未指定の場合 10 です。

ポイントは、アクションの priority はオーバーライドしたフィルターのあるアクションよりも低い数字を指定して先に実行されるようにし、

フィルターの priority はオーバーライドするフィルターよりも高い数字を指定して後からフィルタリングできるようにする。

plugins_loaded アクションでフィルターされている場合は、plugins_loaded よりも先にアクションを実行しなければならないので、functions.php に追記してもオーバーライドすることができない。

そういうときは、mu-plugins でオーバーライドするとよいです。

wp-content/ に mu-plugins というディレクトリを作成して、適当なファイル名でコードを保存するだけです。

ちなみにアクションの実行順は下記の通り、

muplugins_loaded

registered_taxonomy

registered_taxonomy

registered_taxonomy

registered_taxonomy

registered_taxonomy

registered_post_type

registered_post_type

registered_post_type

registered_post_type

registered_post_type

plugins_loaded

sanitize_comment_cookies

setup_theme

unload_textdomain

load_textdomain

after_setup_theme

load_textdomain

load_textdomain

auth_cookie_malformed

auth_cookie_valid

set_current_user

init

registered_post_type

registered_post_type

registered_post_type

registered_post_type

registered_post_type

registered_taxonomy

registered_taxonomy

registered_taxonomy

registered_taxonomy

registered_taxonomy

widgets_init

register_sidebar

register_sidebar

register_sidebar

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_register_sidebar_widget

wp_loaded

parse_tax_query

parse_tax_query

posts_selection

template_redirect

admin_bar_init

add_admin_bar_menus

get_header

wp_head

wp_enqueue_scripts

wp_print_styles

wp_print_scripts

get_template_part_content

begin_fetch_post_thumbnail_html

end_fetch_post_thumbnail_html

get_template_part_content

get_template_part_content

get_template_part_content

get_template_part_content

get_template_part_content

get_template_part_content

get_template_part_content

get_template_part_content

get_template_part_content

begin_fetch_post_thumbnail_html

end_fetch_post_thumbnail_html

get_sidebar

dynamic_sidebar_before

dynamic_sidebar

dynamic_sidebar_after

get_footer

twentytwelve_credits

wp_footer

wp_print_footer_scripts

wp_before_admin_bar_render

wp_after_admin_bar_render

shutdown