个性化阅读
专注于IT技术分析

如何在WordPress页面中创建不同的可编辑section?

我一直在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中?

我在几个论坛上进行了搜索, 很多建议使用小部件添加内容, 如果不使用小部件, 有什么方法可以完成?

任何帮助将不胜感激。


#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


我相信你有三种选择:

  1. 创建一个小部件区域, 然后可以在其中显示文本小部件中的内容:http://codex.wordpress.org/Function_Reference/register_sidebar
  2. 创建一个模板, 然后在该模板中获取其他页面的内容:http://codex.wordpress.org/Page_Templates#File_Folders
  3. 为你的所有页面创建一个新的meta框:http://codex.wordpress.org/Function_Reference/add_meta_box

我相信你正在寻找的是选项2。如果你希望在每个页面上显示额外的内容, 则其他选项则更面向全站点。


#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插件。

赞(0)
未经允许不得转载:srcmini » 如何在WordPress页面中创建不同的可编辑section?

评论 抢沙发

评论前必须登录!