0

我想为我的索引页上的摘录做一个条件陈述。如果没有手动摘录,我希望保存摘录的 divdispaly:none

<div class="excerpt"><?php if(!empty($post->post_excerpt)) {
     //This post have an excerpt, let's display it
     the_excerpt();
 } else {
     // <div class="excerpt" display:none?>
4

5 回答 5

2

我会亲自使用内联 if 语句

<div class="exerpt" <?=((empty($post->post_excerpt)) ? 'style="display:none;"' : NULL)?> >
<?=the_exerpt()?>
</div>

所以 html只有在为真style="display:none;"时才适用empty($post->post_exerpt)

如果您不想使用内联 if 语句,您可以执行以下操作:

<?php
$style = NULL;
if(empty($post->post_exerpt()))
{
$style = ' style="display:none;" ';
}
?>
<div class="exerpt" <?=$style?> >
<?=$the_exerpt()?>
</div>

div虽然,如果它只是要被隐藏,你为什么要打印呢?

为什么不:

<?php
if(!empty($post->post_exerpt()))
{
?>
<div class="exerpt">
    <?=$the_exerpt()?>
</div>
<?php
}
?>

这样,只有在有内容时才添加 div,如果没有,则将 div 一起忽略

于 2013-08-11T18:31:02.137 回答
1

只需在每种情况的(行)中以不同的方式渲染 div:

<?php if(!empty($post->post_excerpt)) {
    ?><div class="excerpt"><?php
    //This post have an excerpt, let's display it
    the_excerpt();
    ?></div><?php
} else {
    ?><div class="excerpt" style="display: none;" /><?php
} ?>

在这种情况下,您也可以删除该else部分,然后如果有摘录并且甚至不可见,它就会被渲染。

于 2013-08-11T18:30:54.987 回答
0

我想不出为什么这不起作用的任何原因。除非您有一个创建手动摘录的插件。有时基于搜索的插件会这样做。

global $post
if(!empty($post->post_excerpt)) {
  the_excerpt();
} else {
  // whatever
}
于 2013-08-12T19:38:02.777 回答
0
<div class="exerpt" style="display:none;">
于 2013-08-11T18:29:31.757 回答
0
<div class="exerpt" <?php if(empty($post->post_excerpt)) { ?> style="display:none;" <?php }?> >
<?php the_exerpt()?>
</div>
于 2013-08-11T18:37:20.253 回答