如何确保更新Wordpress插件不会在插件更新时丢失?

时间:2012-06-09 10:27:25

标签: wordpress wordpress-plugin

我很确定我已经阅读过某个地方,您可以将主插件* .php文件移动到其他地方(我假设在您的主题目录下)以确保安全,以防您对其进行更改和插件更新。我试过谷歌,但我找不到任何东西。获得良好结果的Google页面就足够了。

我刚刚经历过这样一种情况:我的2个插件的布局已经改变并满足了我的需求,我想确保它不再发生。除了将主文件放在另一个位置之外,还有一种方法可以移动任何CSS和JS文件吗?

在Concrete5 CMS中有一种很好的方法,通过在插件块中创建一个新文件夹(可以看作是一个WP插件),在其中你可以创建主文件,任何CSS和JS文件,然后您可以简单地编辑它们,并为您正在使用该块的页面位置选择该模板。

我认为在Wordpress中没有这样的东西,但我能接近多少?

更新:我找到了在创建文件的新实例然后将其移动到主题目录时应用该建议的位置。 有问题的插件是HL-Twitter。这些是插件文件:

admin.php
archive.php
functions.php
hl_twitter.php
hl_twitter_archive.php
hl_twitter_widget.php
import.php
widget.php

现在,这是hl_twitter_widget.php的顶级内容(已注释掉):

Widget Theme for HL Twitter
To change this theme, copy hl_twitter_widget.php
to your current theme folder, do not edit this
file directly.

Available Properties:
$before_widget
$after_widget
$before_title
$after_title
$widget_title
$show_avatars
$show_powered_by
$num_tweets: how many tweets to show
$tweets: array of $tweet
$tweet: object representing a tweet
$tweet->twitter_tweet_id
$tweet->tweet
$tweet->lat
$tweet->lon
$tweet->created
$tweet->reply_tweet_id
$tweet->reply_screen_name
$tweet->source
$tweet->screen_name
$tweet->name
$tweet->avatar
$user: represents the Twitter user (ONLY SET IF SHOWING A SINGLE USERS TWEETS!)
$user->twitter_user_id
$user->screen_name
$user->name
$user->num_friends
$user->num_followers
$user->num_tweets
$user->registered
$user->url
$user->description
$user->location
$user->avatar       

所以我错误地复制了主文件(在本例中为hl_twitter.php),但仍然 - 这使我能够在插件目录之外编辑文件,并且系统会以某种方式检查其存在并在存在时将其拾取。 如果这种行为是由Wordpress原生支持的,或者它已经集成在插件本身中?

2 个答案:

答案 0 :(得分:3)

对于主题,Wordpress有一个"儿童主题的概念"这恰好允许:将更改与主题分开,以防它发生变化。

我还没有找到使用插件的方法。

我自己使用了一些策略:

  • 我将插件版本提升到非常高的数字,如99.9。这样Wordpress就不会更新插件。
  • 将我的插件存储在版本控制中(我使用git,但这没关系),这可以让你更新插件,运行'差异'工具,看看发生了什么变化。如果你不喜欢你只是回复,就像你写的那么糟糕的代码。但这种方法需要一些技巧。

答案 1 :(得分:1)

您是在谈论同时运行经过修改的第三方插件和更新版本的部分内容吗?

那是不可能的。没有神奇的方法可以“保留我的更改并自动将它们转移到新版本中”。这里的方法是在编辑版本和更新之间进行差异,并将更改集成到实际的源文件中。

最重要的是,如果您手动编辑第三方插件,则在进行更新后您将进行人工审核(并可能返工)。这就是为什么广泛修改第三方插件通常不是一个好主意。