【如何覆盖WordPress主题的”
functions.php”
文件中的插件功能()】如何覆盖主题文件夹的”
functions.php”
文件中的插件功能?
下面是我的代码:
if(!function_exists('userphoto_filter_get_avatar')){
function userphoto_filter_get_avatar($avatar, $id_or_email, $size, $default){
global $userphoto_using_avatar_fallback, $wpdb, $userphoto_prevent_override_avatar;
if($userphoto_using_avatar_fallback)
return $avatar;
if(is_object($id_or_email)){
if($id_or_email->
ID)
$id_or_email = $id_or_email->
ID;
// Comment
else if($id_or_email->
user_id)
$id_or_email = $id_or_email->
user_id;
else if($id_or_email->
comment_author_email)
$id_or_email = $id_or_email->
comment_author_email;
}if(is_numeric($id_or_email))
$userid = (int)$id_or_email;
else if(is_string($id_or_email))
$userid = (int)$wpdb->
get_var("SELECT ID FROM $wpdb->
users WHERE user_email = '" . mysql_escape_string($id_or_email) . "'");
if(!$userid)
return $avatar;
// Figure out which one is closest to the size that we have for the full or the thumbnail
$full_dimension = get_option('userphoto_maximum_dimension');
$small_dimension = get_option('userphoto_thumb_dimension');
$userphoto_prevent_override_avatar = true;
$img = userphoto__get_userphoto($userid, (abs($full_dimension - $size) <
abs($small_dimension - $size)) ? USERPHOTO_FULL_SIZE : USERPHOTO_THUMBNAIL_SIZE, '', '', array(), '');
$userphoto_prevent_override_avatar = false;
if($img)
return $img;
return $avatar;
}
}
当我激活插件时, 它给了我一个致命错误:
无法重新声明userphoto_filter_get_avatar()。我究竟做错了什么?
#1将你的自定义替代代码添加到必须使用的插件中。
只能通过使用另一个插件或必须使用的插件来覆盖插件中定义的可插拔功能。将代码添加到另一个插件不可靠。因此, 最好使用必须使用的插件。
请注意, 可以通过在我们的插件或主题中使用相同名称的功能来覆盖WordPress核心中定义的可插入功能。
添加到主题的functions.php文件中的代码将在以后执行, 即在执行插件代码后执行。因此, 在主题文件中添加覆盖功能将触发无法重新声明错误。
原因:
在Plugin_API / Action_Reference中指定了各种WordPress操作的执行顺序。从这里我们可以看到, 简化的执行顺序是
- muplugins_loaded
- plugins_loaded
- after_setup_theme
推荐阅读
- 如何从WordPress管理面板中的”添加用户页面”中删除网站字段()
- 如何制作WordPress作者页面模板
- 如何在台式机和移动设备上使图片中的文字动态显示
- 如何在WordPress中使顶部导航中的单个链接具有不同的背景色()
- 如何使用WordPress插件polylang进行自定义字符串翻译()
- 如何在WordPress中使用入队链接正确链接我的JavaScript文件
- 如何增加Soho WordPress主题主页上的帖子数量()
- Prestashop安装教程【2022】
- [C语言小白]简易扫雷程序