如果没有特征图像,则隐藏部分



我为我正在工作的团队制作了一个自定义模板。我将此代码用于模板(以及获取页眉和页脚的部分)

<div class="main-container">
	<a href="#" id="top" class="in-page-link"></a>
<?php 
	the_post();
	
	$thumbnail = has_post_thumbnail();
	
?>
	<section class="section-header overlay preserve3d">
		
		<div class="background-image-holder parallax-background">
			<?php the_post_thumbnail('full', array('class' => 'background-image')); ?>
		</div>
		
	</section>
	<section>
		<div class="container">
			<div class="row">
			
				<div class="col-lg-12">
					<div class="article-body">
						<?php
							if(!( $thumbnail ))
								the_title('<h1>','</h1>');
								
							the_content();
							wp_link_pages();
						?>
					</div><!--end of article snippet-->
				</div>
				
				
			</div>
		</div>
	</section>

但如果没有特色图像,则会出现一个灰色框。如果没有特色图像,我宁愿将整个部分隐藏起来,因为这样看起来会更好。

我是一个php新手所以我不知道如何做到这一点。我认为我需要做的是:有一个if/else语句检查特色图像。如果没有图像,添加一个类到该部分,并在我的css文件中为该类定义'display none'。

所以这是我试图配对的代码,但它没有工作:

<?php
// Must be inside a loop.
if ( has_post_thumbnail() ) {
	the_post_thumbnail();
}
else {
	$("section:first").addClass("noshow");
}
?>

这个代码不正确吗?我需要把它放在我的文档的什么地方?

PHP在服务器端执行,jquery在用户端执行。你总是可以回显jquery语句,这样它就会被发送给用户。

你可以遵循Martin E.在他的评论中所说的路径(在我看来这是一个更干净的版本),或者你可以通过在你的头部添加jquery来追求你的工作方式,如果你还没有尝试这样做:

<?php
if ( has_post_thumbnail() ) {
    the_post_thumbnail();
}
else {
    echo '<script>$("section:first").addClass("noshow");</script>';
}
?>

最新更新