如何确保对Wordpress插件的更改赢得';插件更新不会丢失吗?

如何确保对Wordpress插件的更改赢得';插件更新不会丢失吗?,wordpress,Wordpress,我很确定我在某个地方读到过,你可以将主plugin*.php文件移动到其他地方(我假设是在你的主题目录下),以确保它的安全,以防你对它进行了更改和插件更新。我试过谷歌,但什么也找不到。谷歌网页与良好的结果将足够 我刚刚经历了一个情况,我的2个插件的布局发生了变化,满足了我的需求,我想确保它不会再次发生。除了将主文件放在另一个位置外,还有没有其他方法可以移动CSS和JS文件 在Concrete5 CMS中,有一种很好的方法可以做到这一点,即在插件块(可能被视为WP插件)中创建一个新文件夹,在其中可

我很确定我在某个地方读到过,你可以将主plugin*.php文件移动到其他地方(我假设是在你的主题目录下),以确保它的安全,以防你对它进行了更改和插件更新。我试过谷歌,但什么也找不到。谷歌网页与良好的结果将足够

我刚刚经历了一个情况,我的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本机支持的,或者它已经集成到插件本身中了?

带有主题,Wordpress有一个“子主题”的概念,它正好允许:将更改与主主题分开,以防更改

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

我自己也在使用一些策略:

  • 我将插件版本提升到一个非常高的数字,比如99.9。这样Wordpress就不会更新插件了
  • 将我的插件存储在版本控制中(我使用git,但这并不重要),这允许您更新插件,运行“diff”工具并查看发生了什么变化。如果您不喜欢,只需还原,就像您编写的代码不好一样。但这种方法需要一些技巧

您是说同时运行经过修改的第三方插件的部分和更新版本吗

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


底线是,如果您手动编辑第三方插件,那么一旦更新发生,您将进行手动审查(可能还会返工)。这就是为什么广泛修改第三方插件通常不是一个好主意。

您可能会因此而陷入痛苦的世界,因为WP插件没有编码标准。你必须在每次更新时区分新旧版本,没有更好的方法了。。。这就是为什么编辑第三方插件不是一个好主意。(当然,你可以在每次更改后简单地复制整个插件目录以确保,但插件可以完全更改而不需要通知)如果我至少能够创建一个主文件的新实例,然后编辑该文件,而不是原始位置的文件,我会很高兴的。你的意思是在Wordpress内部,没有FTP程序的帮助?可能有一个插件可以实现这一点,但也许从网络主机的控制面板更容易实现?这里的问题不在于移动部件本身。我可以毫无问题地移动它,但我需要知道我可以将它移动到哪里,这样它仍然可以工作。所以你还没有听说过将main plugin.php文件移动到另一个位置的可能性(实际上,移动它的一个实例)?我不记得在哪里读到过这一点。再看一看:如果你的插件支持钩子或过滤器,你可以在你的主题的functions.php中修改它们。非常像儿童题材。但是插件必须支持这一点。为了防止修改后的插件自动升级,在插件文件夹中创建一个源代码文件夹就足够了。例如:
mkdir-wp-content/plugins/your-modified-plugin/.hg
Genius。这份文件在什么地方吗?谢谢分享!是的,差不多。确切地说,我想更改通过contact form 7插件创建的联系人表单的外观。因此,不需要添加函数,只需更改HTML和CSS样式。我想我最近读到了一些关于从插件目录中获取main.php文件,然后将其放入(活动主题???)目录的内容。然后您可以编辑该文件并保留原始插件文件不变,从而避免在更新时丢失。@denny这可能实现,也可能不实现,这完全取决于插件的结构。如果HTML和CSS在不同的文件中,您可以备份它们。但是你也可能不会,这取决于插件,没有绑定规则