WordPress建站钩子函数及使用
目录
前言:
使用场景:
一、常用的wordpress钩子(动作钩子、过滤器钩子)
1、动作钩子(Action Hooks)
2、过滤器钩子(Filter Hooks)
二、常用钩子示例
1、添加自定义 CSS 和 JS 文件
2、修改文章内容
3、在页脚添加内容
4、开发者还可以创建自定义的钩子,供主题或插件中的其他函数调用。
三、使用步骤(以wp_head钩子为例)
1、进入wordpress后台,找到主题文件编辑器
2、点击右侧的functions.php文件
编辑 3、在左侧编辑器中的代码下面添加钩子方法,点击更新文件
4、前台页面刷新审查元素查看是否已经添加成功
前言:
在 WordPress 中,钩子(Hooks)是一种非常强大的机制,允许开发者在特定的时刻(如页面加载、发布内容、用户登录等)插入自定义的代码。
使用场景:
在wordpress建站中,网站搭建好后,由于seo优化或者是网站数据追踪统计,通常会在网站的每个页面的一些位置例如<head>标签里,<body>标签里,<footer>前面等位置,添加一些js插件或者是固定的代码,使用wordpress自带的一些hooks(钩子函数)可以很方便的实现在该站点的每个页面都添加对应的代码。
一、常用的wordpress钩子(动作钩子、过滤器钩子)
动作钩子(Action Hooks):允许在指定位置执行某些操作或函数。
过滤器钩子(Filter Hooks):允许拦截并修改数据,然后将修改后的数据传递给下一个流程。
1、动作钩子(Action Hooks)
动作钩子用于在某个事件或时刻运行函数,可以用
add_action()添加自定义函数。常用的动作钩子包括:
init 在 WordPress 初始化时触发。 wp_loaded WordPress 完全加载完成时触发。 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 文件
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、修改文章内容
function modify_post_content($content) {if (is_single()) {$content .= '<p>感谢阅读本文!</p>';}return $content; } add_filter('the_content', 'modify_post_content');3、在页脚添加内容
function add_footer_content() {echo '<p>自定义页脚内容</p>'; } add_action('wp_footer', 'add_footer_content');4、开发者还可以创建自定义的钩子,供主题或插件中的其他函数调用。
例如:
// 定义自定义钩子 do_action('my_custom_hook');// 添加函数到自定义钩子 add_action('my_custom_hook', function() {echo '这是一个自定义钩子调用的内容'; });
三、使用步骤(以wp_head钩子为例)
1、进入wordpress后台,找到主题文件编辑器
2、点击右侧的functions.php文件
3、在左侧编辑器中的代码下面添加钩子方法,点击更新文件
// add_others是方法名,可以自定义,保持跟下面add_action里面方法名相同即可function add_others(){?><script>'要添加的js代码内容'</script><?php
}add_action('wp_head','add_others');

4、前台页面刷新审查元素查看是否已经添加成功
相关文章:
WordPress建站钩子函数及使用
目录 前言: 使用场景: 一、常用的wordpress钩子(动作钩子、过滤器钩子) 1、动作钩子(Action Hooks) 2、过滤器钩子(Filter Hooks) 二、常用钩子示例 1、添加自定义 CSS 和 JS…...
Qt 模型视图(二):模型类QAbstractItemModel
文章目录 Qt 模型视图(二):模型类QAbstractItemModel1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色1.6.总结 Qt 模型视图(二):模型类QAbstractItemModel 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模…...
算法打卡 Day41(动态规划)-理论基础 + 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯
文章目录 理论基础Leetcode 509-斐波那契数题目描述解题思路 Leetcode 70-爬楼梯题目描述解题思路 Leetcode 746-用最小花费爬楼梯题目描述解题思路 理论基础 动态规划,简称 DP,其中的每一个状态一定是由上一个状态推导出来的,而贪心算法没有…...
鸿蒙环境服务端签名直传文件到OSS
本文介绍如何在鸿蒙环境下将文件上传到OSS。 背景信息 鸿蒙环境是当下比较流行的操作环境,与服务端签名直传的原理类似,鸿蒙环境上传文件到OSS是利用OSS提供的PutObject接口来实现文件上传到OSS。关于PutObject的详细介绍,请参见PutObject。…...
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
首先安装需要的python库, 安装完之后利用navicat导入数据库文件bili100.sql到mysql中, 再在pycharm编译器中连接mysql数据库,并在设置文件中将密码修改成你的数据库密码。最后运行app.py,打开链接,即可运行。 B站爬虫数…...
solidwork剪裁实体
之前是这样: 效果如下:...
Junit与Spring Test简单使用
Junit与Spring Test简单使用 Junit5简介Junit5 注解Junit5与Spring结合 差异概览MockingMockBeanSpyBeanDemo 注意事项 又要写测试代码了,总结记录一下。 Junit5简介 与单一模块设计的Junit4不同,Junit5引入了模块化架构,由三个主要子项目组成: JUnit Pl…...
Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度
Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度 之前老版本是通过计算字符数量,然后给动态给每一列设置宽度,不仅麻烦,还不好复用。 看了 API 发现 v4.7 和 v3.9 版本已经直接就能支持了,只需加上 widt…...
document.visibilityState 监听浏览器最小化
1.document.hidden: 表示页面是否隐藏的布尔值。页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 (注意,页面被其他软件遮盖并不算隐藏,比如打开的 sublime 遮住了浏览器)。 2.document.visibilityStateÿ…...
前端框架对比和选择
大家好,我是程序员小羊! 前言: 前端框架选择是前端开发中的关键决策,因为它影响项目的开发效率、维护成本和可扩展性。当前,最流行的前端框架主要包括 React、Vue 和 Angular。它们各有优劣,适用于不同…...
Linux 进程2
环境变量 再Linux操作系统中一切皆文件,这个环境变量自然也是一个文件,它的作用是辅助我们使用操作系统还可以辨识我们是什么用户(一般用户,root用户)。 env是读取完整环境变量的指令,里面记录了许多我登录操作系统所用的用户的信…...
WPF入门教学六 Grid布局进阶
在WPF(Windows Presentation Foundation)中,Grid布局是一种非常强大且灵活的布局控件,它允许你创建复杂的用户界面。以下是Grid布局的一些进阶技巧和教学: 一、基本概念回顾 Grid定义:Grid是一个用于布局…...
while循环及简单案例
//循环是流程控制中的一个重要分支 //流程控制 条件判断 循环 逻辑处理 //循环的目的和意义 //循环的目的是为了执行一块代码 //循环的意义是为了简化代码。增加代码的复用性 /* //例如输出0-100的数…...
电子看板实时监控数据可视化助力工厂精细化管理
在当今竞争激烈的制造业领域,工厂的精细化管理成为提高竞争力的关键。而电子看板实时监控数据可视化作为一种先进的管理工具,正为工厂的精细化管理带来巨大的助力。 一、工厂精细化管理的挑战 随着市场需求的不断变化和客户对产品质量要求的日益提高&am…...
邮储银行:面向金融行业的移动应用安全风险监测案例
本项目通过在移动应用中植入威胁情报探针并结合网络镜像流量方式,利用应用运行过程中设备、系统、应用、行为四个维度数据,将其与设备的关键因子关联生成唯一的移动设备指纹;对手机银行等应用资产进行资产台账梳理;结合服务端大数据分析平台的各种模型规则分析,实时监测移…...
ARMxy车辆数据采集Linux智能控制器
在当今科技日新月异的时代,高效智能的边缘计算设备在众多领域发挥着关键作用。我们的 ARM 边缘计算机,凭借其卓越的性能和广泛的适用性,成为车队管理智能化的核心力量。 一、强大硬件配置,完美适配车队管理需求 ARM 边缘计算机支…...
7.Java高级编程 多线程
Java高级编程 多线程 文章目录 Java高级编程 多线程一、进程与线程查看线程 二、线程创建方式三、线程状态四、线程常用方法五、线程安全 一、进程与线程 一个程序有一个进程 一个进程包含多个线程(必须有一个主线程) 并发: 在同一时刻&a…...
MT8370|MTK8370(Genio 510 )安卓核心板参数介绍
MTK Genio 510 (MT8370)安卓核心板是一款极为先进的高性能平台,专为满足边缘处理、先进多媒体功能及全面的连接需求而设计,适用于多种人工智能(AI)和物联网(IoT)应用场景。它具备多个高分辨率摄像头支持和可联网触摸屏显示,适用于使用多任务高…...
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
一、介绍 动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件&am…...
【STL】priority_queue 基础,应用与操作
c在C的标准模板库(STL)中,priority_queue 是一个基于堆的容器适配器,用于实现优先级队列。它本质上是一个最大堆(Max-Heap),即每次取出元素时,始终取出优先级最高的元素。本文将详细…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

