通过Wordpress中的functions.php向header.php添加代码

时间:2016-04-26 19:22:17

标签: php wordpress wordpress-theming

我目前在wp-content/themes/genesis/header.php

中手动实施了跟踪代码

代码看起来像这样(缩短):

<script>
  CODE HERE
<?php if (is_single()){CODE HERE}?>
  CODE HERE
</script>
</head>

每当我升级genesis(Wordpress主题)时,这段代码都会丢失,我必须再次手动添加它。

如何通过functions.php将此代码添加到wp-content/themes/genesis/header.php的head部分,以便它能够在Wordpress主题升级中幸存下来 - 代码将如何显示?

2 个答案:

答案 0 :(得分:8)

您需要使用wp_head挂钩动态地向<head></head>添加内容。

您的代码如下所示:

add_action('wp_head', 'change_this_name');
function change_this_name(){
  ?>
  <script>
    CODE HERE
  <?php if (is_single()){CODE HERE}?>
    CODE HERE
  </script>
  <?php
};

答案 1 :(得分:3)

通常,在不修改您的修改的情况下修改主题的解决方案是使用子主题。但你也可以创建一个小插件,它可以做你想做的事情。

您选择的选项目前通常非常多,但如果您计划将来进行更多更改,则应记住:

  • 插件用于添加功能
  • 主题用于控制事物的外观和感觉

这可能会帮助您确定最好采用哪个选项(尽管您可以轻松地执行这两个选项,或者如果您愿意,可以稍后更改)。)

选项1:创建子主题

wp-content/themes文件夹中创建一个新文件夹(将其命名为您想要调用新主题的任何内容),然后在该文件夹中创建style.css

style.css的顶部,您需要包含主题的定义信息。您可以从Genesis主题复制此格式,只需更改名称和其他详细信息,以便在您激活它时明确这是您的主题。

这里的关键是在这个主题信息阅读中添加一个新行:

Template: genesis

该行告诉Wordpress你的主题将是Genesis的儿童主题,以及你的主题没有提供的任何内容,Wordpress将从Genesis中获取。

这里的关键是只覆盖你想要的,然后让其余的回溯到Genesis。

因此,您可以复制header.php并添加您的代码,但如果更改,您仍需要更新文件的其余部分。更好的解决方案是在新的子主题中创建自己的functions.php并使用以下内容:

add_action('wp_head', function(){
  ?>
  Enter tracking code here...
  <?php
});

然后,这将挂钩到Wordpress的头部动作,并在您想要的地方打印出跟踪代码,而不必使用其余的标题。

当然,一旦你准备好了,就去外观 - &gt; Wordpress中的主题,你会在那里看到你的新主题。激活它并检查您的网站!

有关儿童主题的更多背景信息和提示,您可以看到this page on the Wordpress Codex

选项2:创建插件

如果只是想要添加到您网站的功能,您可能会发现插件更有用 - 特别是因为您可以稍后更改主题并轻松保留插件,您可以随意激活它并停用它。

如果您想在以后添加更多功能,可以根据需要创建任意数量的插件。

该过程相当类似于创建上述主题。而不是在wp-content/themes文件夹中创建新文件夹,而是将其粘贴在wp-content/plugins中。然后,在该文件夹中创建一个.php文件(例如myplugin.php,但您可以随意调用它),并将以下内容添加到文件顶部:

<?php
/*
Plugin Name: My Toolset
*/

(如果您愿意,可以添加其他信息,可在this page of the Wordpress Plugin Handbook上获得更多信息)

在此下,只需放置上面主题选项中提到的完全相同的add_action()代码即可。

保存文件,转到Wordpress管理员插件,在列表中找到新插件,点击激活,然后检查您的网站!

有关插件的更多背景信息和提示,您可以看到this page on the Wordpress Codex