wordpress functions使用WordPress Filters时,最常见的操作就是返回true或者false,通常我们要创建一个函数添加到某个filter中,在函数中最终返回true或false,如果除了返回值以外没有其它操作,可以借助WordPress内置的便捷函数进行。

 

改变filter的返回值

例如,控制admin bar是否显示,正常情况下应该这样写

function my_function_admin_bar(){
    return false;
}
add_filter( 'show_admin_bar' , 'my_function_admin_bar');

如果借助WordPress内置的函数,可以精简成下面这样

add_filter( 'show_admin_bar', '__return_false' );

__return_false是WordPress内置的返回值函数,如果一个filter函数除了返回值意外不做任何其它操作,推荐用第二种方法来写,更清晰,更有意义。

WordPress内置的返回值函数

__return_false        — 返回布尔型false
__return_true         — 返回布尔型true
__return_empty_array  — 返回空的PHP数组
__return_zero         — 返回整数0
__return_null         — 返回null

这些函数定义在wp-includes/functions.php中,原型如下所示

/**
 * Returns true.
 * @since 3.0.0
 */
function __return_true() {
	return true;
}

/**
 * Returns false.
 * @since 3.0.0
 */
function __return_false() {
	return false;
}

/**
 * Returns 0.
 * @since 3.0.0
 */
function __return_zero() {
	return 0;
}

/**
 * Returns an empty array.
 * @since 3.0.0
 */
function __return_empty_array() {
	return array();
}

/**
 * Returns null.
 * @since 3.4.0
 */
function __return_null() {
	return null;
}

参考文章

what is __return_false in filters

Codex: Plugin API/Filter Reference/show admin bar

Some Useful Small Built-In Functions In WordPress