wordpress - 在 Wordpress 单个博客文章中的“the_title”之后和“the_content”之前放置一个片段
问题描述
我想在 Wordpress 单个博客文章标题之后和单个博客内容之前添加一个小片段。
我知道有 the_title 和 the_content Wordpress 过滤器。我使用这些过滤器的问题是它们被附加(或前置)到它的内部。
add_filter('the_title', array($this, 'add_snippet') );
public function add_snippet($title) {
$snippet_html = '<div class="snippet">Snippet content</div>';
return $title . $snippet_html;
}
将输出:
<h1 class="entry-title">Hello world!<div class="snippet">Snippet content</div></h1>
“the_content”过滤器也是如此:
add_filter('the_content', array($this, 'add_snippet') );
public function add_snippet($content) {
$snippet_html = '<div class="snippet">Snippet content</div>';
return $snippet_html . $content;
}
将输出:
<div class="entry-content single-page">
<div class="snippet">Snippet content</div>
<p>Welcome to WordPress. This is your first post.</p>
</div>
是否有任何 WP 方法可以获得所需的输出,例如?:
<h1 class="entry-title">Hello world!</h1>
<-- HERE <div class="snippet">Snippet content</div>
<div class="entry-content single-page">
<p>Welcome to WordPress. This is your first post.</p>
</div>
解决方案
我不认为有任何这样的内置 WP 方法。当然,我们可以通过使用 WP 钩子来实现这一点。请看下面的例子。
模板中的代码应该是这样的。
//For title
<?php do_action("your_theme_post_before_title"); ?>
<div class="title"><?php the_title(); ?></div>
<?php do_action("your_theme_post_after_title"); ?>
//For content
<?php do_action("your_theme_post_before_content"); ?>
<div class="content"><?php the_content(); ?></div>
<?php do_action("your_theme_post_after_content"); ?>
现在您可以根据需要使用这些钩子。
add_action("your_theme_post_after_title", function(){
echo '<div class="snippet">Snippet content</div>';
});
add_action("your_theme_post_before_content", function(){
echo '<div class="snippet">Snippet content</div>';
});
推荐阅读
- c# - 在代码中映射适当的资源 (.resx) 文件 - ASP.NET MVC
- c++ - 复制安全信息
- c - 从 txt 文件填充数组时出错
- javascript - 我如何访问此对象项?
- jquery - .addClass 和 .removeClass 方法的 Jquery 问题
- wcf - 调用者未通过同一台机器上的服务进行身份验证
- android - 如何在房间数据库中进行搜索
- html - 使用 Flexbox 并排创建盒子 CSS
- node.js - 如何使用 v8::String::NewFromUtf8 的 Maybe 版本?
- javascript - 为什么我不能将 key 的值放入我的字符串中,它一直取值 +key+