WordPress建站钩子函数及使用

ops/2024/9/24 8:06:00/

目录

前言:

使用场景:

wordpress%E9%92%A9%E5%AD%90%EF%BC%88%E5%8A%A8%E4%BD%9C%E9%92%A9%E5%AD%90%E3%80%81%E8%BF%87%E6%BB%A4%E5%99%A8%E9%92%A9%E5%AD%90%EF%BC%89-toc" style="margin-left:0px;">一、常用的wordpress钩子(动作钩子、过滤器钩子)

1、动作钩子(Action Hooks)

2、过滤器钩子(Filter Hooks)

二、常用钩子示例

1、添加自定义 CSS 和 JS 文件

2、修改文章内容

3、在页脚添加内容

4、开发者还可以创建自定义的钩子,供主题或插件中的其他函数调用。

 三、使用步骤(以wp_head钩子为例)

wordpress%E5%90%8E%E5%8F%B0%EF%BC%8C%E6%89%BE%E5%88%B0%E4%B8%BB%E9%A2%98%E6%96%87%E4%BB%B6%E7%BC%96%E8%BE%91%E5%99%A8-toc" style="margin-left:80px;">1、进入wordpress后台,找到主题文件编辑器

php%E6%96%87%E4%BB%B6-toc" style="margin-left:80px;">2、点击右侧的functions.php文件

​编辑 3、在左侧编辑器中的代码下面添加钩子方法,点击更新文件

4、前台页面刷新审查元素查看是否已经添加成功 


前言:

在 WordPress 中,钩子(Hooks)是一种非常强大的机制,允许开发者在特定的时刻(如页面加载、发布内容、用户登录等)插入自定义的代码。

使用场景:

wordpress建站中,网站搭建好后,由于seo优化或者是网站数据追踪统计,通常会在网站的每个页面的一些位置例如<head>标签里,<body>标签里,<footer>前面等位置,添加一些js插件或者是固定的代码,使用wordpress自带的一些hooks(钩子函数)可以很方便的实现在该站点的每个页面都添加对应的代码。

wordpress%E9%92%A9%E5%AD%90%EF%BC%88%E5%8A%A8%E4%BD%9C%E9%92%A9%E5%AD%90%E3%80%81%E8%BF%87%E6%BB%A4%E5%99%A8%E9%92%A9%E5%AD%90%EF%BC%89">一、常用的wordpress钩子(动作钩子、过滤器钩子)

动作钩子(Action Hooks):允许在指定位置执行某些操作或函数。

过滤器钩子(Filter Hooks):允许拦截并修改数据,然后将修改后的数据传递给下一个流程。

1、动作钩子(Action Hooks)

动作钩子用于在某个事件或时刻运行函数,可以用 add_action() 添加自定义函数。

常用的动作钩子包括:

init在 WordPress 初始化时触发。
wp_loadedWordPress 完全加载完成时触发。
wp_head<head> 标签之前添加内容。
wp_footer<footer> 之前添加内容。
wp_body_open<body> 标签开始处添加内容(WordPress 5.2+)。
admin_menu后台菜单加载时触发,可以用来添加自定义菜单。
template_redirect在 WordPress 确定要加载哪个模板文件时触发,可以重定向用户到其他页面。
wp_enqueue_scripts用于注册和加载 CSS 和 JS 文件。
save_post保存或更新文章时触发。
login_form在登录表单之前添加内容。
comment_post在评论发布后执行操作。

2、过滤器钩子(Filter Hooks)

过滤器钩子允许你修改 WordPress 中某些数据的输出,比如修改标题、内容、登录表单等。可以用 add_filter() 添加自定义的过滤函数。

常用的过滤器钩子包括:

the_content过滤文章或页面内容。
the_title过滤文章或页面标题。
the_excerpt过滤摘要内容。
wp_title修改 <title> 标签的内容。
comment_text过滤评论内容。
login_redirect修改用户登录后的重定向地址。
widget_title过滤小部件的标题。
wp_nav_menu_items过滤导航菜单的 HTML 输出。
upload_mimes自定义上传文件类型的 MIME 类型。

二、常用钩子示例

1、添加自定义 CSS 和 JS 文件

php">function my_custom_enqueue_scripts() {wp_enqueue_style('my-custom-style', get_template_directory_uri() . '/css/custom.css');wp_enqueue_script('my-custom-script', get_template_directory_uri() . '/js/custom.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'my_custom_enqueue_scripts');

2、修改文章内容

php">function modify_post_content($content) {if (is_single()) {$content .= '<p>感谢阅读本文!</p>';}return $content;
}
add_filter('the_content', 'modify_post_content');

3、在页脚添加内容

php">function add_footer_content() {echo '<p>自定义页脚内容</p>';
}
add_action('wp_footer', 'add_footer_content');

4、开发者还可以创建自定义的钩子,供主题或插件中的其他函数调用。

例如:

php">// 定义自定义钩子
do_action('my_custom_hook');// 添加函数到自定义钩子
add_action('my_custom_hook', function() {echo '这是一个自定义钩子调用的内容';
});

 三、使用步骤(以wp_head钩子为例)

wordpress%E5%90%8E%E5%8F%B0%EF%BC%8C%E6%89%BE%E5%88%B0%E4%B8%BB%E9%A2%98%E6%96%87%E4%BB%B6%E7%BC%96%E8%BE%91%E5%99%A8">1、进入wordpress后台,找到主题文件编辑器

php%E6%96%87%E4%BB%B6">2、点击右侧的functions.php文件

 3、在左侧编辑器中的代码下面添加钩子方法,点击更新文件

php">// add_others是方法名,可以自定义,保持跟下面add_action里面方法名相同即可function add_others(){?><script>'要添加的js代码内容'</script><?php
}add_action('wp_head','add_others');

4、前台页面刷新审查元素查看是否已经添加成功 


http://www.ppmy.cn/ops/115197.html

相关文章

解决Vue 3中Element Plus el-color-picker 组件消失的问题

概述 在使用Vue 3和Element Plus框架构建应用程序时&#xff0c;你可能会遇到el-color-picker组件无法正常显示的情况。这可能是由于多种原因造成的&#xff0c;包括但不限于CSS加载问题、JavaScript错误、版本兼容性等。本文将指导你如何排查并解决这个问题。 在 el-color-p…

Java之String 类的学习

目录 1. String类的重要性 2. 常用方法 2.1 字符串常用3种构造 2.2 String对象的4种比较 1. 比较是否引用同一个对象 2. boolean equals(Object anObject) 方法&#xff1a;按照字典序比较 3. int compareTo(String s) 方法: 按照字典序进行比较 4. int compar…

Blender软件三大渲染器Eevee、Cycles、Workbench对比解析

Blender 是一款强大的开源3D制作平台&#xff0c;提供了从建模、雕刻、动画到渲染、后期制作的一整套工具&#xff0c;广泛应用于电影、游戏、建筑、艺术等领域。 渲染101云渲染云渲6666 相比于其他平台&#xff0c;如 Autodesk Maya、3ds Max 或 Cinema 4D&#xff0c;Blende…

平衡二叉树(AVL树):原理、常见算法及其应用

目录 引言 AVL树的基本概念 常见算法 插入节点 查找节点 删除节点 AVL树的应用场景 1. 数据库索引 2. 符号表 3. 字典和词汇表 4. 动态集合 5. GPS导航系统 6. 计算机辅助设计&#xff08;CAD&#xff09; 结论 引言 平衡二叉树&#xff08;Balanced Binary Tre…

解决启动docker desktop报The network name cannot be found的问题

现象 deploying WSL2 distributions ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version: getting main distro bootstrap version: open \wsl$\docker-desktop\etc\wsl_bootstrap_version: The network name…

golang学习笔记3-变量的声明

注&#xff1a;本人已有C&#xff0c;C,Python基础&#xff0c;只写本人认为的重点。 一、变量的三种声明方式 func main() {//方式1&#xff0c;指定数据类型&#xff0c;声明后若不赋值&#xff0c;使用默认值//比如int的默认值是0&#xff0c;string的默认值是空串var i in…

购买转化预测_逻辑回归,网格搜索与交叉验证

数据入口&#xff1a;在线书店A/B测试数据集 - Heywhale.com 数据说明 字段说明Theme显示主题&#xff0c;dark&#xff08;深色&#xff09;&#xff1b;light&#xff08;浅色&#xff09;Click Through Rate点击率&#xff1a;用户点击网站上链接或按钮的比例Conversion R…

spring 的启动过程

Spring 框架的启动过程涉及各种模块的初始化、依赖注入、AOP 配置等&#xff0c;以下是 Spring 容器启动的一般过程。 加载配置文件。首先读取配置文件&#xff08;如 XML 配置文件、Java Config 类等&#xff09;。实例化容器。根据配置文件中的信息创建容器 ApplicationCont…