我一直在WordPress上构建我的第一个主题, 并且在将内容添加到不同部分时遇到了问题。
我的HTML有点像这样,
<
div id="maintext">
<
-- Text -->
<
/div>
<
div id="products">
<
-- Text and Images -->
<
/div>
<
div id="about_company">
<
-- Text boxes -->
<
/div>
【如何在WordPress页面中创建不同的可编辑section()】如何确定通过WordPress编辑器添加的内容属于各自的div?对于” maintext” div, 我将从页面本身加载内容, 但是如何动态地将内容添加到其他2 div中?
我在几个论坛上进行了搜索, 很多建议使用小部件添加内容, 如果不使用小部件, 有什么方法可以完成?
任何帮助将不胜感激。
#1不幸的是, 单独使用WordPress在单个页面中添加多个可编辑字段并不是特别容易。
我认识的许多WP开发人员(包括我本人)都依赖Advanced Custom Fields插件来获取其他内容字段。
实现此目的的步骤:
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>
这里有很多很好的例子。如果你确实有雄心壮志, 则无需安装插件, 甚至可以直接在主题中包含ACF。
#2我相信你有三种选择:
- 创建一个小部件区域, 然后可以在其中显示文本小部件中的内容:http://codex.wordpress.org/Function_Reference/register_sidebar
- 创建一个模板, 然后在该模板中获取其他页面的内容:http://codex.wordpress.org/Page_Templates#File_Folders
- 为你的所有页面创建一个新的meta框:http://codex.wordpress.org/Function_Reference/add_meta_box
#3如果你正在编写主题, 也许你想考虑使用WordPress框架, 这样就不必从头开始。
如果不是这种情况, 请考虑最终用户。他们将如何在页面和帖子中添加部分?他们将不得不在WordPress用户界面中跨位置移动, 还是宁愿使用用户短代码?
我的建议是建立一个可在文档内容中呈现该部分的插件。如果是这种情况, 则为小部件内容。
我写了一些代码来说明如何完成这样的事情, 也因为我现在有点需要:D。你可以在github上找到它https://github.com/lionpage/Front-Office-Document-Sections
希望这可以帮助
#4
<
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>
#5我已经多次遇到这个问题了, 虽然这个问题已经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>
#6你好, 即时通讯目前正在建立一个主题。有两种方法可以实现此目的:
小部件化和固定的管理面板(客户选项)
如果小部件创建一个包含小部件部分的.php文件, 则在主题中使用两者
如果在管理面板中修复, 则必须在functions.php中包括.php部分
编辑*小部件化的优点是你可以像在常规边栏中一样排列它们
#7正在为此而苦苦挣扎, 并且不想使用插件。我发现的唯一WordPress本机选项是使用” 自定义字段” 。这有效, 但仅适用于文本, 并且相当麻烦。
另一个非插件选项是仅在WordPress编辑器中使用HTML, 但这当然也不理想。
最后, 我放弃了, 并选择了Advanced Custom Fields插件。
推荐阅读
- 如何自定义wp_list_pages()的输出,以便可以将链接包装在自己的HTML中()
- 如何为所有”h2标签”添加数字
- 如何恢复wordpress备份()
- 如何在WordPress自定义meta框中保存复选框状态()
- 英国脱欧后,亚马逊电商产品要从新认证
- Tomcat 离线安装
- Docker 安装 Gitlab
- 博睿数据赋能数字化转型,用户体验升级需要有“温度”的技术
- 通过http和浏览器访问Samba共享文件夹