我一直在WordPress上构建我的第一个主题,并且在将内容添加到不同部分时遇到了问题。
我的HTML有点像这样,
<div id="maintext">
<-- Text -->
</div>
<div id="products">
<-- Text and Images -->
</div>
<div id="about_company">
<-- Text boxes -->
</div>
如何确保通过WordPress编辑器添加的内容属于相应的div?对于“maintext”div,我将从页面本身加载内容,但如何动态地向其他2个div添加内容?
我搜索了几个论坛,很多人建议使用小部件添加内容,有没有办法可以在不使用小部件的情况下完成?
任何帮助都将很高兴。
答案 0 :(得分:73)
不幸的是,在单个页面中添加多个可编辑字段并不是特别容易使用WordPress。
我认识的许多WP开发者(包括我自己)依赖于Advanced Custom Fields Plugin来获取其他内容字段。
实现这一目标的步骤:
1)将ACF安装到插头上 2)在ACF的设置区域中创建一些新字段 3)为特定页面或一组页面指定要显示的新字段 4)更新给定页面的页面模板,以便显示新字段。
例如,您可以创建一组标准的所见即所得字段,然后将它们分配到“概述”页面。我们称这些字段为:main_text,products_info和about_company。创建字段并将其分配给页面后,当您编辑该页面时,其他字段将可供编辑。
要让访问者看到这些新字段,必须将它们添加到您用于概述页面的页面模板中。代码可能是这样的:
<div id="maintext">
<!-- Text -->
<?php if(get_field('main_text')){ //if the field is not empty
echo '<p>' . get_field('main_text') . '</p>'; //display it
} ?>
</div>
<div id="products">
<!-- Text and Images -->
<?php if(get_field('products_info')){ //if the field is not empty
echo '<p>' . get_field('products_info') . '</p>'; //display it
} ?>
</div>
<div id="about_company">
<!-- Text boxes -->
<?php if(get_field('about_company')){ //if the field is not empty
echo '<p>' . get_field('about_company') . '</p>'; //display it
} ?>
</div>
有很多好examples here。如果你真的有野心,而不是安装插件,你甚至可以包括ACF directly in your theme。
答案 1 :(得分:5)
我相信你有三个选择:
我相信您正在寻找的是选项2.如果您希望在每个页面上显示额外的内容,则其他更全面的网站。
答案 2 :(得分:2)
<div id="maintext">
<?php the_content(); ?>
</div>
<div id="products">
<?php // echo wp function to get product data; ?>
</div>
<div id="about_company">
<?php // echo wp function to get about companydata; ?>
</div>
答案 3 :(得分:2)
如果您正在撰写主题,也许您可以考虑使用WordPress框架,这样您就不必从头开始。
如果不是这种情况,请考虑最终用户。他们将如何向页面和帖子添加部分?他们是否必须跨越WordPress UI中的位置,或者他们是否更喜欢用户短代码?
我的建议是构建一个在文档内容中呈现该部分的插件。或小部件内容,如果是这种情况。
我写了一小段代码来说明你如何能够完成这样的事情,还因为我现在需要它:D。你可以在github上找到它https://github.com/lionpage/Front-Office-Document-Sections
希望这有帮助
答案 4 :(得分:0)
我现在已经多次遇到这个问题了,虽然这个问题已经有3年了,但我认为它仍然是最新的。我现在有时成功地使用了多内容块插件:
https://ltz.wordpress.org/plugins/multiple-content-blocks/
安装插件后,您只需在模板中加入the_block
:
<div id="maintext">
<?php the_content(); ?>
</div>
<div id="products">
<?php the_block('products') ?>
</div>
<div id="about_company">
<?php the_block('company') ?>
</div>
答案 5 :(得分:0)
正为此而苦苦挣扎,并且不想使用插件。我发现的唯一WordPress本机选项是使用Custom Fields。这有效,但仅适用于文本,并且相当麻烦。
另一个非插件选项是仅在WordPress编辑器中使用HTML,但这当然也不理想。
最后,我放弃了,并选择了Advanced Custom Fields插件。
答案 6 :(得分:0)
固定和固定的管理面板(自定义选项)
我在主题中同时使用了两者 如果小部件 创建一个包含小部件部分的.php文件 为此部分创建一个小部件
如果在管理面板中已修复 您必须在functions.php中包含.php部分
edit *小部件化的优势在于您可以像在常规边栏中一样排列它们