在 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