问题描述
尝试在我的 functions.php 中的帖子内容之前插入内容 – 我知道如何使用常规 wp 钩子,但不确定如何插入到其他区域。
试过这个,但是它会杀死任何其他帖子类型的内容:
function property_slideshow( $content ) {
if ( is_single() && 'property' == get_post_type() ) {
$custom_content = '[portfolio_slideshow]';
$custom_content .= $content;
return $custom_content;
}
}
add_filter( 'the_content', 'property_slideshow' );
如何使这个条件?
最佳解决方案
只需使用 the_content
过滤器,例如:
<?php
function theme_slug_filter_the_content( $content ) {
$custom_content = 'YOUR CONTENT GOES HERE';
$custom_content .= $content;
return $custom_content;
}
add_filter( 'the_content', 'theme_slug_filter_the_content' );
?>
基本上,您在自定义内容之后附加帖子内容,然后返回结果。
Edit
正如 Franky @ bueltge 在他的评论中指出的,过程与帖子标题一样; 只需向 the_title
钩子添加一个过滤器:
<?php
function theme_slug_filter_the_title( $title ) {
$custom_title = 'YOUR CONTENT GOES HERE';
$title .= $custom_title;
return $title;
}
add_filter( 'the_title', 'theme_slug_filter_the_title' );
?>
请注意,在这种情况下,您会在标题后添加自定义内容。 (没有关系,我刚刚跟你在你的问题中指定了什么)
编辑 2
您的示例代码不工作的原因是因为您在符合条件时才返回 $content
。您需要将未修改的 $content
作为 else
返回到您的条件。例如。:
function property_slideshow( $content ) {
if ( is_single() && 'property' == get_post_type() ) {
$custom_content = '[portfolio_slideshow]';
$custom_content .= $content;
return $custom_content;
} else {
return $content;
}
}
add_filter( 'the_content', 'property_slideshow' );
这样,对于不是’property’ post-type 的帖子,返回 $content
,un-modified 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。