如何使用PHP开发WordPress插件在每篇文章前后添加横幅或文本消息
在WordPress文章首尾添加横幅/文本的PHP实现方法
嘿,要给每篇WordPress文章的首尾都加上自定义横幅或者文本消息?用PHP来实现其实很简单,咱们可以借助WordPress的钩子机制来搞定,不用去修改主题的模板文件——这样就算以后主题更新,你的自定义内容也不会丢失,非常稳妥。
核心原理
WordPress提供了the_content这个钩子,它专门用来过滤文章的内容输出。我们可以通过这个钩子,在原始文章内容的前后拼接上我们想要的自定义内容。
基础实现代码
先给你看最基础的版本(修正了转义问题,更易读):
<?php /** * Plugin Name: 文章首尾自定义横幅 * Plugin URI: * Description: 自动在每篇WordPress文章的开头和结尾添加自定义文本/横幅 * Version: 1.0 * Author: 你的名字 * Text Domain: post-banners */ // 禁止直接访问该文件 if (!defined('ABSPATH')) { exit; } add_action('the_content', function($content) { // 开头的自定义内容 $before_text = '<p>这是文章开头的横幅/文本消息</p>'; // 结尾的自定义内容 $after_text = '<p>这是文章结尾的横幅/文本消息</p>'; // 拼接内容并返回 return $before_text . $content . $after_text; });
进阶优化:只针对文章生效
上面的代码会给所有使用the_content钩子的内容都加上首尾文本(比如页面、自定义文章类型),如果你只想给博客文章(post类型)添加,我们可以加个判断:
<?php /** * Plugin Name: 文章首尾自定义横幅 * Plugin URI: * Description: 自动在每篇WordPress文章的开头和结尾添加自定义文本/横幅 * Version: 1.0 * Author: 你的名字 * Text Domain: post-banners */ if (!defined('ABSPATH')) { exit; } add_action('the_content', function($content) { // 只在单篇文章页面生效,排除页面、自定义文章类型等 if (!is_singular('post')) { return $content; } $before_content = '<div class="post-header-banner">欢迎阅读这篇文章!</div>'; $after_content = '<div class="post-footer-banner">觉得有用的话欢迎分享哦~</div>'; return $before_content . $content . $after_content; });
样式优化建议
为了让首尾的横幅更美观,你可以给它们加上CSS类,然后在主题的自定义CSS里添加样式:
.post-header-banner { background-color: #e3f2fd; padding: 1.2rem; border-left: 4px solid #2196f3; margin-bottom: 2rem; border-radius: 4px; } .post-footer-banner { background-color: #f5f5f5; padding: 1.2rem; border-left: 4px solid #757575; margin-top: 2rem; border-radius: 4px; }
使用方法
- 把上面的PHP代码复制到一个新的文件里,命名为
post-custom-banners.php - 把这个文件上传到你的WordPress网站的
wp-content/plugins/目录下 - 登录WordPress后台,进入「插件」页面,找到这个插件并启用它
这样每篇文章的首尾就会自动显示你设置的内容啦!
内容的提问来源于stack exchange,提问作者user9712531
相关产品推荐
相关产品推荐

