个性化阅读
专注于IT技术分析

如何避免WordPress主题升级更改我的父主题functions.php?

我目前在wp-content / themes / genesis / header.php中手动实现了跟踪代码

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

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

每当我升级创世(WordPress主题)时, 此代码都会丢失, 我必须再次手动添加它。

我如何通过functions.php将此代码添加到wp-content / themes / genesis / header.php的head部分中, 以便它在Wordpress主题升级后仍然存在-代码看起来如何?


#1


你需要使用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
};

#2


通常, 在不覆盖所做修改的情况下修改主题的解决方案是使用子主题。但是, 你也可以创建一个小插件, 该插件可以执行你在此想要做的事情。

到目前为止, 你通常会选择哪种方法, 但是如果你将来计划进行更多更改, 则应记住以下几点:

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

这可以帮助你确定最好采用哪种选择(尽管你可以轻松地选择两者, 也可以稍后再更改:)。

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

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

然后, 这里的关键是向此主题信息阅读添加新行:

模板:创世纪

该行告诉Wordpress, 你的主题将是Genesis的子主题, 而你的主题没有提供的任何内容, WordPress将从Genesis那里抢走。

然后, 这里的关键是仅覆盖你想要的内容, 让其余的内容退回到Genesis。

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

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

然后, 这将挂接到Wordpress的头部动作中, 并在你需要的位置直接打印出跟踪代码, 而无需你弄乱标题的其余部分。

当然, 一旦准备好, 请转到Wordpress中的外观->主题, 你将在其中看到新主题。激活它并检查你的站点!

有关子主题的更多背景和技巧, 你可以在Wordpress Codex上看到此页面。

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

如果以后要添加更多功能, 则可以创建任意数量的插件。

该过程与上面创建主题非常相似。与其在wp-content / themes文件夹中创建新文件夹, 不如将其粘贴在wp-content / plugins中。然后, 在该文件夹中创建一个.php文件(例如, myplugin.php, 但你可以随意命名), 并将以下内容添加到该文件的顶部:

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

(你可以根据需要添加其他信息, 有关更多信息, 请参见《 WordPress插件手册》的本页)

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

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

有关插件的更多背景和技巧, 请在Wordpress Codex上查看此页面。


#3


我目前在wp-content / themes / genesis / header.php中手动实现了跟踪代码

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

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

每当我升级创世(WordPress主题)时, 此代码都会丢失, 我必须再次手动添加它。

我如何通过functions.php将此代码添加到wp-content / themes / genesis / header.php的head部分中, 以便它在Wordpress主题升级后仍然存在-代码看起来如何?


#4


你需要使用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
};

#5


通常, 在不覆盖所做修改的情况下修改主题的解决方案是使用子主题。但是, 你也可以创建一个小插件, 该插件可以执行你在此想要做的事情。

到目前为止, 你通常会选择哪种方法, 但是如果你将来计划进行更多更改, 则应记住以下几点:

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

这可以帮助你确定最好采用哪种选择(尽管你可以轻松地选择两者, 也可以稍后再更改:)。

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

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

然后, 这里的关键是向此主题信息阅读添加新行:

模板:创世纪

该行告诉Wordpress, 你的主题将是Genesis的子主题, 而你的主题没有提供的任何内容, WordPress将从Genesis那里抢走。

然后, 这里的关键是仅覆盖你想要的内容, 让其余的内容退回到Genesis。

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

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

然后, 这将挂接到Wordpress的头部动作中, 并在你需要的位置直接打印出跟踪代码, 而无需你弄乱标题的其余部分。

当然, 一旦准备好, 请转到Wordpress中的外观->主题, 你将在其中看到新主题。激活它并检查你的站点!

有关子主题的更多背景和技巧, 你可以在Wordpress Codex上看到此页面。

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

如果以后要添加更多功能, 则可以创建任意数量的插件。

该过程与上面创建主题非常相似。与其在wp-content / themes文件夹中创建新文件夹, 不如将其粘贴在wp-content / plugins中。然后, 在该文件夹中创建一个.php文件(例如, myplugin.php, 但你可以随意命名), 并将以下内容添加到该文件的顶部:

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

(你可以根据需要添加其他信息, 有关更多信息, 请参见《 WordPress插件手册》的本页)

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

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

有关插件的更多背景和技巧, 请在Wordpress Codex上查看此页面。

赞(0)
未经允许不得转载:srcmini » 如何避免WordPress主题升级更改我的父主题functions.php?

评论 抢沙发

评论前必须登录!