我应该如何添加类似“窗口小部件”的元素?

时间:2015-03-12 作者:gandalf3

我想添加一个像“模板”这样的自定义幻灯片,可以调用到其他模板文件中。

我的第一个想法就是创造出这样的东西;单独的slideshow.php 包含相关标记和<script>s、 理想情况下,它也会引入自己的样式表,但我不确定这将如何工作<link><style> 不能在任何地方,除非在<head> (至少not yet).

然后我发现了wordpress小部件。从我想做的事情的名称和性质来看,我想这也许是我要做的事情。我对这些小部件以及它们的功能和工作方式不太了解(示例模板看起来像是php的混淆,似乎与我想做的事情并不相关),即使在浏览了wordpress codex中的相关页面之后也是如此。

哪种方法看起来更符合逻辑
什么时候应该使用模板,什么时候应该使用小部件?

我对wordpress完全陌生,所以我的术语可能不正确。。就这一点而言,我可能在很多方面都不正确:P

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

这完全取决于你。这两种方法应该做同样的事情。我确实认为您在正确实施第一选择/方法方面遇到了困难。

您试图做的是正确地在幻灯片中使用单独的模板,然后使用get_template_part(). 问题似乎在于你的风格。样式标记在<head></head> 标签,这是您用于内联样式的内容,但是,不建议使用内联样式,因为它们很难用子主题和插件覆盖,并且内联样式不能通过简单地退出队列或取消注册来删除。

不允许在<head></head> 标记是链接标记。如果你这样做,那是无效的HTML。

无论您是否决定使用小部件的模板部分,您都必须加载您的样式,因此,如果您没有正确加载样式,那么使用这两种方法,您将回到原点。下面是如何正确加载样式

创建一个新的样式表,并随意命名,比如slider-style.css

在此文件中添加滑块的所有样式。

将样式表与wp_enqueue_style() 函数内部。如果需要有条件地加载样式表,请使用wp_register_style() 注册样式,然后有条件地将样式排入队列

将您的函数挂接到wp_enqueue_scripts. 这会将您的样式添加到wp_head

示例:

假设您的滑块仅在主页上使用,您可以尝试以下操作

add_action( \'wp_enqueue_scripts\', \'enqueue_slider_styles\', PHP_INT_MAX );
function enqueue_slider_styles() 
{
    wp_register_style( \'slider-styles\', get_template_directory_uri() . \'/slider-style.css\' );
    if ( is_home() ) {
        wp_enqueue_style( \'slider_styles\' );
    }
}
这将只在主页上加载滑块样式表。我假设这里有一个父主题,如果您使用的是子主题(如果您想更改自己没有编写的主题,那么应该始终使用子主题),那么您应该使用get_stylesheet_directory_uri() 代替get_template_directory_uri()

参考文献:

结束

相关推荐

PRINT_MEDIA_TEMPLATES未应用于媒体管理器插件

我正在尝试构建一个媒体库,用户可以在其中选择从自定义文件夹中检索的图片,用户可以指定其basefolder。我正在取回正确的图像,但指定的模板未应用于缩略图。它确实可以找到标题(选择img时请参见侧栏)它没有应用想要的模板,而是说<div class=\"filename\"><div></div></div> 实际上,我甚至不需要自定义模板,我很乐意将图像显示在标准库中,但我似乎无法得到正确的结果。在介质文件夹管理中。js文件我有这个var Mfm