如何修复wordpress自定义主题以使用插件?

时间:2012-03-11 17:21:35

标签: wordpress wordpress-plugin wordpress-theming

这是我第一次尝试编写自定义wordpress主题,我几乎就在那里。有一些错误,因为有任何东西,但我已经尝试了一些不同的选择来修复它们但没有成功。

链接是www.studiosimplicit.com/wp。

我的第一个问题是在事件页面上使用nivo滑块(www.studiosimplicit.com/wp/events)。最初我遇到插件本身的问题,图像堆叠在一起。为了纠正这个问题,我手动输入代码来调用nivo .js文件,这似乎解决了这个问题。但现在加载图像存在,但图像无法加载。

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

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

请帮忙!

3 个答案:

答案 0 :(得分:19)

听起来,你的自定义主题缺少允许插件改变/输出代码的常见钩子。

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

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

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

WP Nivo Slider在调用wp_enqueue_script时使用此代码,例如,在其wp-nivo-slider.php文件中。在幕后,wp_enqueue_script使用Twentyeleven主题中的wp_head()挂钩在<head>部分输出所请求的Javascript包含(通过稍微迂回的路线,最终在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>部分,所以这两个部分通常是他们需要的唯一钩子。

因此,我最初的建议是确保您的自定义主题在其wp_head()部分的末尾包含对<head>的调用(从您已获得的工作主题中复制代码)和也就是在结束wp_footer()标记之前调用</body>。这将使大多数基于Javascript的插件工作的机会很好。

答案 1 :(得分:2)

仅供记录:我有类似的问题,我不得不更换行

<?php echo get_the_content() ?>

这一个:

<?php echo the_content() ?>

但我也必须包括wt_head和wp_foot,正如Matt所解释的那样。

答案 2 :(得分:0)

只包括

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

在开头之前,之后肯定会有效。