我想在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>
#1
我认为没有任何内置的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>';
});
评论前必须登录!
注册