尝试过此操作,但它会杀死任何内容其他帖子类型:
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' );
如何设置此条件?
#1 楼
只需使用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' );
?>
基本上,您可以在自定义内容之后附加帖子内容,然后返回结果。
编辑
正如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”帖子类型的帖子,将返回
$content
,且未修改。评论
也可以在标题后添加内容;过滤器the_title是右钩子。
– Bueltge
2012年1月24日7:51
@ChipBennett问题-如何仅针对自定义帖子类型使用逻辑来执行此操作-我尝试将它包装在if(is_single()&&'property'== get_post_type()){}中,但对我不起作用
–詹森
2012年1月25日,0:02
@ChipBennett-我可以在自定义帖子类型上使用它,但是内容将从任何其他帖子类型中消失。参见上面的编辑。
–詹森
2012年1月25日,0:10
这是因为您没有为自定义帖子类型返回其他帖子类型的$ content。查看最新答案。
–芯片Bennett
2012年1月25日,0:55
只是一个注释-您不需要else {}块-只是后备返回。如果满足条件,则if()中的返回值会将您带出该函数,如果您使其超出if(),则将返回回退值。
–phatskat
2012年12月6日15:02
#2 楼
function property_slideshow( $content ) {
if ( is_singular( 'property' ) ) {
$custom_content = do_shortcode( '[portfolio_slideshow]' );
$custom_content .= $content;
}
return $custom_content;
}
add_filter( 'the_content', 'property_slideshow' );
is_singular
条件标记检查是否显示单个帖子,并允许您指定$ post_types参数(在这种情况下为property)。此外,您可能想要看
do_shortcode
评论
在这里游戏晚了,但是您要在is_singular('property')返回false的实例中返回一个空变量。如果您在那儿反转逻辑,而在这种情况下仅返回$ content,那么您将得到更清晰,更易读的代码。
–特拉维斯·韦斯顿(Travis Weston)
18年9月13日在13:50
也可以添加else或使用三元运算符。这是一个未经充分测试的示例,可以扩展。
–布拉德·道尔顿(Brad Dalton)
18/09/13在17:09
评论
在这种情况下:只要确保您的函数无论如何都会返回$ content(未修改时)。