0

我继承了一个使用front-page.php 来呈现主页的项目结构。大多数站点都使用 Wordpress 内容字段,但我们已转而使用高级自定义字段构建新功能。the_content() 在整个代码库中用于呈现内容,我想知道是否有办法在 the_content() 中包含 ACF 布局。

下面是我不得不用于主页的一个示例解决方法,如果我不以这种方式调用布局,内容将不会呈现在页面上。我是 ACF 的新手,所以如果我所描述的是对如何将 ACF 带入生态系统的根本误解,我将不胜感激有关更好的文件结构和调用内容的任何指导。

<?php get_header(); ?>

<?php
    if (is_page('Home')) {
?>
        <div class="container">
            <div class="row">
        <?php
            get_template_part('/layouts/home');
        ?>
            </div>
        </div>
<?php
    } else {
        the_content();
    }
?>
<?php get_footer(); ?>
4

1 回答 1

-1

除了原始的“the_content()”或“get_the_content()”函数之外,您还可以使用 ACF。该内容来自默认块或所见即所得编辑器。ACF 来自您添加到页面或帖子的其他字段。

<?php get_header(); ?>

<?php
    if (is_page('Home')) {
        $home_acf_field = get_field('field_name_from_home_acf');//this assumes that the ACF field has been added to the home page, because I'm not using the second parameter
?>
        <div class="container">
            <div class="row">
        <?php
            get_template_part('/layouts/home');
            echo $home_acf_field;//this could also be placed in "layouts/home"
        ?>
            </div>
        </div>
<?php
    } else {
        $acf_field_from_page = get_field('field_name_from_page_acf');
        the_content();
        echo '<div>'.$acf_field_from_page.'</div>';//an example of where this can go
    }
?>
<?php get_footer(); ?>

您可以将 ACF 合并到模板部分或页面本身中。您需要在 CMS 中将 ACF 字段设置在家里或任何地方,但它就像我向您展示的那样简单(我的示例假设文本字段)。

您不是在问这个问题,但是如果您使用“front-page.php”作为您的主页,那么为什么需要 if 语句来显示内容?除了 ACF 字段之外,您还可以使用“the_content()”,尤其是当它是主页上的内容编辑器时。或者,您可以将其隐藏(这是 ACF 设置)。

注意:我是凭记忆写的,没有测试任何东西,所以请原谅任何潜在的错字。:)

于 2019-11-16T16:08:14.853 回答