【粉丝:掠心】提问: 啥是钩子? 怎么使用WordPress钩子挂载到子比主题-zibll综合交流社区-zibll子比主题-WordPress主题模板-zibll子比主题

【粉丝:掠心】提问: 啥是钩子? 怎么使用WordPress钩子挂载到子比主题

前言

前两天有个帖子 【子比主题文章评论区添加评论用户的六位彩色ID号码,增加简单的靓号判断】我评论 如何使用钩子挂载到子比主题 有个用户问我这个问题 现在来解释并告诉他如何使用!

20231215215626912-image-53

 

WordPress钩子是什么 ChatGPT怎么回答?

WordPress中的钩子(Hooks)是一种用于添加自定义功能或修改现有功能的技术。它们允许开发人员将自己的代码插入到WordPress核心或其他插件/主题中的特定位置,并且可以在不修改源代码的情况下对其进行扩展和修改。

WordPress中有两种类型的钩子:动作与过滤器。动作(Actions)允许您将自己的代码添加到WordPress中特定的动作点,如“wp_head”、“init”等。过滤器(Filters)允许您修改WordPress核心或其他插件/主题中的数据。

钩子的基本结构如下:

phpCopy Code
add_action( 'hook_name', 'your_function_name' );

在上面的示例中,“hook_name”是要添加的钩子的名称,而“your_function_name”是要执行的用户定义函数的名称。

通过使用钩子,开发人员可以轻松地更改WordPress的外观和行为,而无需修改核心代码。这使得维护和升级WordPress变得更加容易。

如何使用【子比主题】钩子

20231215214258173-image-51

  • 在原贴中 我们看到 他是教我们 如何修改子比的代码
  • 我们看到 他是 添加了一个变量 为【uid】
  • 但是我们 找到子比文件的时候 发现了一个钩子 为【comments_user_name_badge】
$badge = apply_filters(‘comments_user_name_badge’, $badge, $comment); 这一段代码 就是我们说的钩子 apply_filters();
  • 这样子就可以利用 WordPress钩子使用挂载 到 comments_user_name_badge
 

20231215214351939-image-52

 

 

 

apply_filters 钩子怎么使用

apply_filters 钩子是 WordPress 中的过滤器类型钩子,用于修改特定函数返回的值或结果。它允许开发人员在函数返回之前对其进行修改或过滤。

使用 apply_filters 钩子需要以下步骤:

  1. 确定要修改的函数或过滤器的名称。例如,如果要修改文章标题的显示方式,可以使用 the_title 这个过滤器。

  2. 创建一个函数来处理过滤逻辑,并返回修改后的值。这个函数将作为过滤器的回调函数。

  3. 使用 add_filter 函数将回调函数添加到指定的过滤器上。

下面是一个示例,演示如何使用 apply_filters 钩子来修改文章标题的显示方式:

phpCopy Code
// 创建一个函数来修改文章标题
function modify_title($title) {
    // 在标题前添加自定义文本
    $modified_title = 'Modified Title: ' . $title;

    // 返回修改后的标题
    return $modified_title;
}

// 将回调函数添加到过滤器上
add_filter('the_title', 'modify_title');

在上面的示例中,我们创建了一个名为 modify_title 的函数,它接收原始标题作为参数,并在标题前添加了自定义文本。然后,使用 add_filter 函数将该函数添加到 the_title 过滤器上。

当WordPress调用 the_title 函数时,它会应用所有已添加到该过滤器上的回调函数,并返回修改后的标题。

请注意,使用过滤器时,确保了解函数或过滤器的参数和返回值。这样才能正确地修改和处理数据。

 

WordPress 【子比主题】钩子代码

 

/**
* 如果您需要添加一些自定义的PHP代码
* 您可以在当前目录下新建一个 func.php 的文件,写入你的php代码
* 主题会自动判断文件进行引入
* 使用此方式在线更新主题的时候,func.php文件的内容将不会被覆盖(手动更新仍然会覆盖)
* 当然需要注意php的代码规范,错误代码将会引起网站严重错误!
*/
if (file_exists(get_theme_file_path(‘/func.php’))) {
require_once get_theme_file_path(‘/func.php’);
}

 

我们看到子比主题 的启动文件中 有一行这个代码 func.php

这个代码的意思应该就是 判断子比文件夹里面是否存在【func.php】如果存在这个文件就引入

我们就可以利用这个 方便添加自己的代码了

进入【宝塔】访问文件夹【/wp-content/themes/zibll】添加文件 【func.php】

添加下面代码进去 这样子就不会 被子比更新替换了

 

 

//为评论显示靓号
add_filter('comments_user_name_badge', function ($badge, $comment) {
  

              $html = '<div class="jb-red mr3 ml3" title="" data-toggle="tooltip" data-original-title="10001" style="line-height: 1.4em;font-size: .8em;line-height: 1.2;padding: .1em .4em;min-width: .8em;min-height: .8em;display: inline-block;vertical-align: .1em;border-radius: 50px;background: var(--this-bg);color: var(--this-color);top: 5px;--this-color: #fff;text-align: center;--this-bg: #fe3459;z-index: 1;border-radius: .45em 2px;">靓</div>
';
       
        //   $html = '<badge class="jb-red mr3 ml3" title="" data-toggle="tooltip" data-original-title="10001" style="line-height: 1.4em;border-radius: .45em 2px;">靓</badge>';
          $html .= $badge ;
        return $html;
}, 10, 2);

 

请登录后发表评论