WordPress は、デフォルトの関数出力をオーバーライドするための 2 つの異なる手段を提供します:プラグ可能な関数とフィルターです。
プラガブル関数
プラグ可能な関数(すべて に存在するpluggable.php
) は、次の形式を取ります。
if ( ! function_exists( 'some_function' ) ) {
function some_function() {
// function code goes here
}
}
プラグ可能な関数をオーバーライドするには、独自のプラグイン (またはfunctions.php
該当する場合はテーマのファイル) で定義するだけです。
function some_function() {
// Your custom code goes here
}
フィルター
フィルタは次の形式を取ります。
function some_function() {
// function code goes here
return apply_filters( 'some_function', $output );
}
フィルターをオーバーライドするには、コールバックを定義してフィルターに追加します。
function mytheme_filter_some_function( $output ) {
// Define your custom output here
return $output;
}
add_filter( 'some_function', 'mytheme_filter_some_function' );
具体的にはget_calendar()
sourceを見ると、出力がフィルターget_calendar()
を通過していることがわかります。get_calendar
return apply_filters( 'get_calendar', $calendar_output );
したがって、変更する独自のコールバックを記述し、$calendar_output
それを にフックするだけget_calendar
です。
function mytheme_filter_get_calendar( $calendar_output ) {
// Define your custom calendar output here
$calendar_output = '';
// Now return it
return $calendar_output;
}
add_filter( 'get_calendar', 'mytheme_filter_get_calendar' );