将内容添加到不带快捷代码的页面

时间:2016-07-06 作者:sven

我正在工作的网站有几个页面需要填充不同的内容元素,如文本图像组合、滑块、内容列表等。客户端需要重新排序这些内容块,添加新内容块等等。每个内容块都是一段内容(帖子或自定义帖子类型)或一个内容列表。

据我所知,我有两种选择:

使用复杂的插件拖放预定义的内容从开发的角度来看,我不希望将所有逻辑都留给第三方插件。看来我会失去一些对模板的控制?

但短代码似乎不是任何客户都能接受的解决方案,真的,因为它们太技术化了。

有什么建议吗?是否有最佳实践?

4 个回复
最合适的回答,由SO网友:sven 整理而成

我评估了不同的选项,并使用了一个插件“页面生成器”。虽然技术方面不是很好(例如数据持久化:所有内容都序列化),但这是唯一的选择,可以给我足够的灵活性和舒适度,以便客户可以更改每个页面的结构。

由于序列化,从dev迁移到stage到live也是一件痛苦的事情,而且只有使用另一个插件(replicator)才能实现。

感谢大家的投入!

SO网友:cjbj

这是一个有趣的问题,尽管对于问答来说有点过于宽泛;一个模型。下面是我要做的:

创建自定义帖子类型,其中每个帖子都是一个内容块,为由代码块组合而成的页面创建第二个自定义帖子类型。代替内容字段,创建十个下拉字段(如果页面上可能有更多块,则创建更多)。对于select 在下拉列表中的选项中,获取第一个自定义帖子类型中所有帖子的标题。这样,任何新的内容块都将自动可用于组装

SO网友:majick

虽然短代码本身与函数相关联,但我认为您可以将它们与模板和用于输入数据的元盒结合使用。例如:

add_shortcode(\'content-box\',\'content_box_function\');
function content_box_function() {
    global $post;
    $title = get_post_meta($post->ID,\'_content_box_title\',true);
    $content = get_post_meta($post->ID,\'_content_box_content\',true);
    get_template_part(\'templates/content\',\'box\');
}
/wp-content/themes/themes-slug/templates/content-box。php

<div class="content-box-container">
    <div class="content-box">
         <h3 class="content-box-title"><?php echo $title; ?></h3>
         <div class="content-box-content"><?php echo $content; ?></div>
    </div>
</div>
然后在写后屏幕中添加一个元框,以允许用户选择/定义元值,以便与您用于每个内容块短代码的键配合使用。

允许您在内容中的任何位置排序/放置短代码,并根据需要保留其他内容,但可以为预定义的内容块类型制定模板(和相关样式)。

SO网友:Self Designs

您可以考虑使用页面模板。例如,我将使用联系人页面。“联系人页面.php”

然后可以编写模板所需的代码。为了保持灵活性,请查看如何使用定制器(如果您不熟悉它),并在模板页面中使用它,以便管理员无需查看代码即可修改页面内容。这就是我制作模板的方式。

相关推荐

我可以将参数传递给Add_ShortCode()函数吗?

正如标题所述,我需要向add_shortcode() 作用换句话说,我传递的那些参数将在的回调函数中使用add_shortcode(). 我该怎么做?请注意,这些与以下结构无关[shortcode 1 2 3] 哪里1, 2, 和3 是用户传递的参数。在我的情况下,参数仅用于编程目的,不应由用户负责。谢谢