在主题中显示插件内容的最佳实践是什么?

时间:2017-12-07 作者:Jusi

例如,在开发包含自定义帖子类型的插件时,确保内容在任何主题中正确显示的最佳做法是什么?

比方说,我想使用单个帖子的精确外观显示插件的事件CPT及其详细信息(single.php 模板)-我只想显示post meta中的其他信息。我不能简单地创建single-post_type.php 文件、抓取页眉、页脚和侧边栏并使用我自己的标记,因为主题对其single.php 样板

我想要的是更接近于以某种方式加入单曲的循环。php,但根据插件的自定义字段显示其他信息。

类似地,我如何为它创建归档模板(看起来像theme的archive.php 但有其他信息吗)?

最后,还有一个单独的页面模板呢?类似于WooCommerce对Cart和Checkout这样的页面所做的,它们使用主题的页眉/页脚,但在页面上显示自己的内容。

换句话说,如何创建主题无关插件?

1 个回复
SO网友:cjbj

由于您不知道主题模板是什么样子,因此任何构建“中性”模板的尝试都可能在某个时候出错。所以,您最好的选择是连接到single和archive页面的元素(可能并没有单独的模板,可能是一个单一的模板主题)。

真正具有异国情调的主题除外,你可以指望有两个挂钩出现:the_titlethe_content. 您可以这样加载内容:

add_filter (\'the_content\',\'wpse288033_add_to_content\')
function: wpse288033_add_to_content ($content) {
  if ( \'book\' == get_post_type() ) { // or any other test relating to your plugin
    $my_html = // build html from your custom fields
    }
  return $content . $my_html;
现在,由于您的html位于帖子内容中,因此内容的样式将应用于它。

这种方法相当简单,但相当有限。您可能希望使用the_meta_key 钩子,但你不能确定它是否在那里。可能会有作者、类别、标记和日期字段,但这可能会产生一些奇怪的结果,因为主题开发人员往往会为这些字段保留有限的空间。尽管如此,如果您的自定义帖子键入自己的分类法,那么挂钩到该类别可能是您的最佳选择。

此时,最好的方法可能是为插件构建一个选项页面,允许用户选择将插件的不同数据元素挂接到页面的位置。

结束

相关推荐

Responsive Admin Themes

我在看这个管理主题的示例(http://themepixels.com/main/themes/demo/webpage/shamcey/dashboard.html). 至于标签为“Navigation”的左侧管理栏,有没有一种方法可以在不使用插件的情况下实现这种类型的左侧仪表板管理菜单?我想用css、js或Jquery来实现这一点,任何处理编码的东西都可以。