我为我正在工作的团队制作了一个自定义模板。我将此代码用于模板(以及获取页眉和页脚的部分)
<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>';
}
?>