在 Wordpress the_content() 中包含高级自定义字段 (ACF)

Posted

技术标签:

【中文标题】在 Wordpress the_content() 中包含高级自定义字段 (ACF)【英文标题】:Include Advanced Custom Fields (ACF) in Wordpress the_content() 【发布时间】:2020-03-12 02:21:58 【问题描述】:

我继承了一个使用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(); ?>

【问题讨论】:

【参考方案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 设置)。

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

【讨论】:

以上是关于在 Wordpress the_content() 中包含高级自定义字段 (ACF)的主要内容,如果未能解决你的问题,请参考以下文章

在 Wordpress the_content() 中包含高级自定义字段 (ACF)

Wordpress:single.php 不显示 the_content()

PHP 通过单词限制WordPress the_content

Wordpress:完全替换the_content

Wordpress:自动更改 the_content 部分中的 URL

php 将Featherlight JS添加到WordPress发布the_content