2012-03-11 62 views
6

这是我第一次尝试编写自定义wordpress主题,而且我几乎在那里。与任何东西都有一些错误,但我已经尝试了几个不同的选项来修复它们,但没有成功。如何修复wordpress自定义主题以使用插件?

链接是www.studiosimplicit.com/wp。

我的第一个问题是使用活动页面上的nivo滑块(www.studiosimplicit.com/wp/events)。最初,我对插件本身有问题,图片堆叠在一起。为了纠正这种情况,我手动输入代码来调用nivo .js文件,而这似乎解决了这个问题。但现在加载图像在那里,但图像不加载。

我检查了图像的URL,这不是问题。我还启用了“后缩略图”功能(正如nivoslider网站上的建议,作为我的问题的常见解决方案),但似乎没有修复它。当我切换到默认主题时,它没有任何价值,滑块工作正常。这是当我激活我的自定义主题,它打破了。

我的第二个问题是应该设置一个全屏幕背景图像的插件,自动调整大小以适合浏览器宽度。再说一次,当我切换到默认主题时,插件工作,但当切换到我的自定义主题时,插件会中断。

请帮忙!

回答

18

通过它的声音,您的自定义主题缺少允许插件更改/输出其代码的常见钩子。

举一个简单的例子,每个主题应该在输出页面的<head>部分的某个地方调用wp_head()。这允许一个插件“挂钩”到你的<head>中,例如,输出代码来加载它的Javascript。

这是一个真实的例子。 WordPress的Twentyeleven主题有这个在其header.php文件(即输出任何页面的<head>节主题的传统的一部分):

... other <head> stuff 
    wp_head(); 
?> 
</head> 

的WP NIVO滑块使用此代码时,它调用wp_enqueue_script,例如,其wp-nivo-slider.php文件。在幕后,wp_enqueue_script使用在Twentyeleven主题输出请求的Javascript包括在<head>部分wp_head()钩(通过在默认情况下结束了在wp_print_head_scripts稍微迂回路线。)

所以,基本上,如果一个插件作品提供了一个主题,但不适用于您的自定义主题,您的任务是查找插件尝试使用的主题中缺少的钩子。

如果您检查WordPress Theme Development documentation,您会在“插件API挂钩”一节中找到主题应包含的挂钩列表。这些,具体为:

  • wp_head
  • wp_footer
  • wp_meta
  • comment_form

大多数插件的重要的将是wp_headwp_footer。这是大多数Javascript被包含在其中的地方,无论是在头部还是脚部(在结束<body>标记之前)。

大多数插件(如Javascript滑块,图像库等)都会简单地添加一个或两个脚本<head>或页脚部分,并且可能还包括CSS文件以设置其内容的样式,这同样在<head>部分中,所以这两者通常是他们需要的唯一钩子。

所以,我最初的建议是,以确保您的自定义主题包括在其<head>节结束时以wp_head()通话(复制从你就是我的工作主题代码),并且还wp_footer()一个电话,刚在结束</body>标记之前。很可能会得到大多数基于Javascript的插件正常工作。

+0

太棒了!只要我插入这些钩子,一切都开始工作。对于我来说,在wordpress主题方面绝对是一种学习体验。它有助于我有一个简单的网站转换为wordpress。非常详细的解释。我感谢你的时间和耐心。谢谢! – giwook 2012-03-12 01:56:27

1

只是为了记录:我有一个类似的问题,我曾与这一个更换线

<?php echo get_the_content() ?> 

<?php echo the_content() ?> 

但我也必须包括wp_head和wp_foot作为解释马特。

0

只包括

<?php include_once(ABSPATH . 'wp-admin/includes/plugin.php'); ?> 
<?php wp_head()?> 

头之前和之后,它肯定会工作。