我的tweaks插件中有以下代码。
add_filter( 'the_content', 'sqhse_news_featimgmove', 20 );
function sqhse_news_featimgmove( $content ) {
$content = preg_replace( "/<\/p>/", "</p>" . get_the_post_thumbnail($post->ID,'post-single', array( 'class' => "img-fluid img-rounded w-100")) . "<div class='clearfix' style='margin-bottom:10px;'></div>", $content, 1 );
return $content;
}
它的作用: 它在第一段之后添加了特色图像,这非常棒,而且正是我所需要的。
问题:代码适用于single.php(非常适合我需要的地方),但它也适用于single-training_courses.php(自定义帖子类型的模板)。
需要的帮助:将代码应用于single.php而不是任何子单一模板,例如single-training_courses.php
这可以实现吗?如果是这样我怎么能实现这个目标?
答案 0 :(得分:0)
您可以使用get_post_type()
WordPress函数并将您的代码包装在if语句中,如下所示:
add_filter( 'the_content', 'sqhse_news_featimgmove', 20 );
function sqhse_news_featimgmove( $content ) {
if( get_post_type() == 'post' ) {
$content = preg_replace( "/<\/p>/", "</p>" . get_the_post_thumbnail($post->ID,'post-single', array( 'class' => "img-fluid img-rounded w-100")) . "<div class='clearfix' style='margin-bottom:10px;'></div>", $content, 1 );
return $content;
}
return $content;
}
答案 1 :(得分:0)
您正在使用的过滤器the_content
正如您所发现的那样适用于所有内容区域。您需要添加条件以检查您所在的帖子类型并进行相应调整。我的建议是使用is_singular()
。
add_filter( 'the_content', 'sqhse_news_featimgmove', 20 );
function sqhse_news_featimgmove( $content ) {
if ( is_singular( 'post' ) ) {
$content = preg_replace( "/<\/p>/", "</p>" . get_the_post_thumbnail($post->ID,'post-single', array( 'class' => "img-fluid img-rounded w-100")) . "<div class='clearfix' style='margin-bottom:10px;'></div>", $content, 1 );
}
return $content;
}
处理过滤器时,请确保始终返回值。如果您有条件,例如将return语句保留在它之外。