【问题标题】:Advice on SAFELY modifying / customizing Header on a Wordpress theme关于在 Wordpress 主题上安全修改/自定义 Header 的建议
【发布时间】:2010-07-08 05:09:51
【问题描述】:

我刚开始使用 Wordpress 3.0 来创建一个简单的博客。现在我正在使用默认主题“二十”。

我想做一个简单的改变:
我想修改出现在博客顶部的 bloginfo('name')、bloginfo('description') 和 php header_image() 的布局。

所以,在外观,编辑器下,我选择 Header.php,我可以看到它是如何呈现的。
看来我可以根据自己的喜好修改它,我很高兴。 (对吗?)

如果是这样,我的问题是:修改 header.php 中的 html 是否被认为是正确的做法?
在我看来,这有点危险,例如在升级同一主题时。我如何知道我对哪些 php 文件应用了自定义?假设我修改了 6 个 php 文件,然后出现了主题升级...如何处理将这些更改重新应用到升级后的主题?

这完全是“重做”吗?
有没有更好的方法来处理这种情况?
也许有些主题比其他主题更强大,可以更灵活地处理这种类型的自定义,我应该寻找这样的主题?或者,通过直接编辑 php 文件,是否有一种合理且安全的方法来做到这一点?

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    子主题,子主题,子主题。在主题中创建一个新文件夹(随意命名。发疯。只要你不将其命名为二十十)。在该目录中创建一个 style.css 文件,并将整个 style.css 文件从 200 复制到其中。然后,更改 css 标题中的主题名称,并在标签后添加这一行:

    Template: twentyten
    

    然后将 header.php 文件复制到您目录中的另一个文件中,并根据您的需要进行编辑。如果 210 得到更新,您将受益于这些更新(除非它们在 css 或标题中),而不会丢失您的更改。

    【讨论】:

    • 感谢 TheDeadMedic!我还应该补充一点,您可以通过在子主题的目录中创建该文件来“替换”父主题(模板)中的任何文件。一个例外是functions.php 文件。 WordPress 将同时使用这两者,首先加载您的子主题的 functions.php 文件,然后是模板的文件。
    • +1 酷。我不知道有儿童主题之类的东西。
    【解决方案2】:

    是的,您可以根据自己的喜好编辑主题。我认为这是常见的做法(但是,我总是从头开始创建自己的主题)。只需在应有的地方给予赞扬,不要将其作为您自己的原创作品。

    为避免在升级时覆盖您的自定义主题,您可以将自定义主题保存到主题目录中的不同文件夹中,使用不同的名称,例如Twenty Ten Customized。然后,如果您认为升级值得麻烦,您可以复制或重新进行升级主题中的更改。毕竟,没有规定必须拥有最新版本的主题。

    可能还有其他主题允许在不编辑 php 的情况下进行高度自定义,但我认为大多数时候您必须编辑 php。 (但我不是专业主题开发者。)

    【讨论】:

    • 嗯,好的。问题:“将自定义的保存到主题目录中的不同文件夹”......“如果您认为升级值得麻烦,您可以复制或重新进行升级主题中的更改。”我想我可以在两个文件夹和文件(原始文件与自定义文件)之间进行“差异”,以确定我更改了哪些文件以及以何种方式更改......然后必须重做潜在的“艰苦”工作重新 -修改新主题。当然是一个可行的解决方案,但并不理想。不知道有没有更好的方法?
    • 另外要记住的是更改主题 css 标题中的主题名称,以便您可以将副本与原始内容区分开来
    • 这比它的价值多得多。您必须检查并修改所有 l10n 字符串的 textdomain 以使字符串正常工作,或者完全删除 l10n 函数。最好的选择是儿童主题。
    【解决方案3】:

    我会按照 Benny 的建议重命名主题,这样在升级 Wordpress 时它就不会被覆盖。

    我不会担心实际主题的更新,因为我认为这些不会真正发生。最后一个 Wordpress 默认主题是 Kubrick,据我所知,它很少更新,而且大多数更新都是次要的,大多数用户都没有注意到。如果您开始自定义主题,我认为 Wordpress 不会将二十个主题更新到您希望没有编辑源代码的地步,因为您想升级到新的默认主题。

    如果您不想实际编辑任何主题文件,请查看Thesis 之类的内容,它允许您从管理员处自定义大部分内容。

    注意:我不知道有一个免费主题可以通过管理面板提供很多自定义选项,但如果你检查一段时间可能会有一些东西。

    【讨论】:

      【解决方案4】:

      如果我真的不得不停止我的 Wordpress 主题的自动更新,我会完全按照 Kris + Chris Schmitz 的建议去做(即以不同的方式重命名主题)。修改主题根目录中style.css 文件中的标头信息以执行此操作。

      但是,就我个人而言,如果该主题已经开箱即用,我想我很可能已经可以接受了。我的网站正在运行,主题正在运行,更新我的主题可能会以我不知道的方式破坏我的网站。

      我可能只会针对主要的安全更新进行更新,但我可能会为此阅读变更日志。但如果我这样做,我会知道究竟修改了哪些文件,我可以自己手动完成。听起来工作量很大,但总比我的网站因某种未知原因让我崩溃要好。

      【讨论】:

        【解决方案5】:

        如果您按照 Benny 的建议操作并创建默认主题的重命名副本,则可以使用免费的 diff 工具在升级时比较目录。我会使用 Meld (http://meld.sourceforge.net/) 进行三向目录比较(原始主题、升级主题、修改副本)以确定是否进行了任何影响您更改的部分的更改,以及合并升级更改为您修改的文件。

        【讨论】:

        • Meld 最大的特点是可以同时编辑文件。很强大。 “Beyond Compare”功能更强大,但它不是免费的,也没有 OSX 版本。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多