我在哪里或在网上其他地方找到的代码片段放在哪里?


34

这里或其他地方的许多帖子都包含代码,但是他们没有说要放在哪里。

例:

我发现了此帖子:如何关闭301重定向帖子(非规范)?
我是PHP的新手。我应该将答案中的代码放在哪里?


1
我竭尽全力使您的问题不太本地化,因此将来我们会发布一个帖子,回答类似的问题。如果您认为这样做不合适,请使用编辑历史记录中的回滚链接。
福厦

1
您也可以尝试在该问题上发表评论,然后在此处提问。
JimmyPena

Answers:


34

只要找到一段没有明确安装说明的代码,它就可能是一个插件。您提供的示例很好,因为这是最常见的情况:

add_action('template_redirect', 'remove_404_redirect', 1);
function remove_404_redirect() {
// do something
}

要使用这样的代码片段,请将其放入插件中:

  1. 创建一个新文件,例如命名remove_404_redirect.php
  2. 从一开始就将简单的插件标头写入文件中。使用您在其中找到代码的URL,Plugin URL并在其中找到代码作者的URL Plugin Author

    <?php
    /**
     * Plugin Name: Remove 404 redirect
     * Description: Disable redirects to similar posts.
     * Plugin URI:  https://wordpress.stackexchange.com/questions/44740/how-do-i-turn-off-301-redirecting-posts-not-canonical
     * Author:      William
     * Author URI:  https://wordpress.stackexchange.com/users/9942/william
     */
  3. 将要使用的代码放在插件标题下方。

  4. 安装新的插件。

那就是所有的人。

可以将代码添加到主题的中functions.php。但这不是一个好主意:

  • 通常,该代码无意于更改网站数据的外观。但这是主题的唯一目的。不要混合责任。
  • functions.php无法单独关闭中的代码。如果代码破解了一天,则必须functions.php再次编辑,或者必须切换主题。如果要使用其他主题,则必须再次复制并粘贴所有代码。
  • 如果您将越来越多的代码片段放入其中,functions.php那么随着时间的推移,您将陷入无法维持的混乱状态。

相关:在哪里放置我的代码:plugin或functions.php?


谢谢!它像魅力一样运作。感谢您使帖子的本地化程度降低。如何与他人共享我的插件文件?
卡尔

1
您可以将其发布在wordpress.org或免费代码托管服务(例如GitHub)上。但是我会先问作者。要表明答案可以解决您的问题,请单击该答案上的小勾✔,以便其他读者立即看到它。
fuxia

在制作这样的插件时,我是否需要将文件放在文件夹中并压缩/压缩,或者插件安装程序也可以与独立的php一起使用?
OC2PS

另外,将使用简单的单个语句(例如add_filter('flush_rewrite_rules_hard','__return_false');)创建插件。工作?
OC2PS

1
@ OC2PS不,文件的末尾是程序的末尾。
fuxia

16

我是插件的开发人员,它允许您通过管理界面将代码段添加到WordPress网站。

它添加了类似于“插件”菜单的图形界面,用于管理代码段。可以激活或停用代码段,为其分配名称和描述,并使用标签对其进行分类。还可以使用导入/导出功能在站点之间备份和转移它们。

管理现有片段

编辑代码段

更多截图

您可以在WordPress.org上了解有关代码片段插件的更多信息,并在GitHub上查看其代码。


6

链接中提到的代码将放置在主题的functions.php文件中,而不是canonical.php中。您应该始终避免修改核心WP文件。您无需覆盖或注释掉任何其他代码。

在编辑功能之前,请备份您的functions.php文件,因为即使functions.php中出现简单的语法错误也可能会占用整个站点。


我不想修改任何核心WP文件。谢谢您的帮助。
卡尔

7
@Carl他明确指出不要修改核心文件。可悲的是,我不能downvote意见...
凯泽

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.