使用 PHP 仅在存档页面上显示横幅

Show banner only on archive pages using PHP

我有一个横幅,我只想在我网站的存档页面上显示。我想不出要这样做的 php 代码。到目前为止,这是我所拥有的(显然我已经删除了很多代码,使它看起来更清晰、更容易):

<header id="masthead" class="site-header navbar-static-top fixed-top <?php echo wp_bootstrap_starter_bg_class(); ?>" role="banner">
</header>

<?php if(is_archive()) ?>

<div class="free-shipping-banner">
    <p>
        FREE SHIPPING on all print orders within North America.
    </p>
</div>

<?php endif; ?>

您可以看到这是我的免费送货横幅,我只想在存档页面上显示。我没有收到此代码的任何错误,但它仍然显示在我网站的所有其他页面上。有谁知道我做错了什么?

这是您的正确代码。请为 if 语句添加括号。

<header id="masthead" class="site-header navbar-static-top fixed-top <?php echo wp_bootstrap_starter_bg_class(); ?>" role="banner">
</header>

<?php if(is_archive()) {  ?>

<div class="free-shipping-banner">
    <p>
        FREE SHIPPING on all print orders within North America.
    </p>
</div>

<?php } ?>

您的代码中的错误是 if 语句只会查找下一行。但是当你放置括号时;你告诉服务器它在哪里结束。您使用了 endif 但您还忘记了 if 语句末尾的冒号。上面的代码将起作用。