在_ARRAY后显示HTML内容时出现问题

时间:2017-12-18 作者:Anda

我正在尝试根据this 问答。

首先,我花了很长时间才明白为什么如果类别中只有一个帖子,它就不会出现——所以我发现计数应该从0开始,而不是从1开始;)

但我不明白为什么HTML之后in_array 根本不显示?

我试着搬家<div class=\'grid\'> 在上面<article></article> 但这显然行不通,因为这会导致每一篇文章都用网格包装。。。代码如下:

     <?php
     if (have_posts()) :
        while (have_posts()) :
            the_post();
            $total_posts = $wp_query->post_count;
            $current_post = $wp_query->current_post;

            // Large boxes
            if (in_array($current_post, array(0, 6))) : ?>

                <article class="large">
                    <h3><?php the_title(); ?></h3>  
                    <?php the_excerpt(); ?>
                </article>
           <?php
           elseif ($current_post > 0 && $current_post < 6 || 
           $current_post > 6) :
                // This should open a grid container but it doesn\'t
                in_array($current_post, array(1, 7)) ? "<div class=\'grid\'>" : "";    //This syntax is new for me ?>
                <article>
                    <h3><?php the_title(); ?></h3>  
                    <?php the_excerpt(); ?>
                </article>
                <?php
                // This should close a grid but it doesn\'t
                in_array($current_post, array(6, $total_posts)) ? "</div> <!-- .grid -->" : ""; //This doesn\'t close a grid container
                //This doesn\'t display a new container
                $current_post == 6 ? "<div class=\'new-container\'></div> <!-- .new-container-->" : "";

            endif;

        endwhile;
    endif;
?>
我现在看到的是:

文章。大型文章我想看的是:

  • article.large
  • div.grid

    文章

    文章

    文章

    文章

    文章

    文章

  • /div.grid

  • div.new-container

--

  • article.large
  • div.grid

    文章

    文章

    文章

    文章

    文章

    文章

  • /div.grid

  • div.new-container 等等

    如果它只是一个基本循环(没有蓝色容器),我可以用第n个子公式设置帖子样式,但我需要将此容器放在帖子组之间。。。我希望上面的代码可以帮助我实现这一点,但它并没有放置这个额外的容器:)

    enter image description here

1 个回复
SO网友:Tom J Nowell

Notice that there are no echo statements, so nothing will be output. You need to echo the result, or nothing will be sent to the browser.

如果它只是一个基本循环(没有蓝色容器),我可以用第n个子公式设置帖子的样式,但我需要将这个容器放在帖子组之间。。。我希望上面的代码可以帮助我实现这一点,但它并没有放置这个额外的容器:)

它不会放置容器,因为你从来没有echo 结果。相反,它被悄悄地丢弃了,因为没有对它做任何处理。

E、 g。

$colour = \'red\';
// this will not do anything
( $colour === \'red\') ? "it\'s red" : "it is not red";

// but this will:
echo ($colour === \'red\') ? "it\'s red" : "it is not red";
未来的一些提示:

一般来说,避免使用三元运算符,并记住它们只是作为值替换,您仍然需要对结果进行处理() ? : 版本,因为它更清楚地表明哪个位是测试,因为它在括号中。请记住,使用嵌套或相邻的三元运算符可能很快就会混淆,例如:$test = true ? true ? "a" : "b" : "c", 非常令人困惑condition ? true : false 它是condition ? false: true, 这让人很困惑,当你计算的时候,你可以使用CSS网格/flex/第n个子选择器

结束

相关推荐

Country-specific content

我正在建立一个网站,其中有一些帖子只与特定国家的用户相关,因此我希望用户选择他的国家,以便他可以查看所有内容减去(-)特定于其他国家的内容。例如:用户可以在阿根廷、智利、墨西哥之间进行选择。他选择了智利。他将能够看到所有内容,但阿根廷和墨西哥的特定内容除外。--更多说明--我相信80%的内容不会针对具体国家。例如,如果有一个名为“TV”的类别具有:一般电视帖子->与所有人相关的内容(如:权力游戏相关帖子)阿根廷电视台->仅与阿根廷电视台相关的内容(如:当地肥皂剧)智利电视台-/li>墨西