2012-06-09 63 views
4

我敢肯定,我讀的地方,你可以在主插件*。PHP文件實際移動到其他地方(我假設你的主題目錄下),才能在安全的情況下,你做了一些改動和你的插件更新。我試過谷歌,但我找不到任何東西。效果良好的Google頁面就足夠了。如何確保插件更新不會丟失對WordPress插件的更改?

我剛剛經歷了一個情況:我的兩個插件有它的佈局改變,適應我的需要,我想,以確保它不會再次發生。除了將主文件放在其他位置之外,是否還有一種方法可以沿着任何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本身支持的,或者它已經集成在插件本身中?

+0

由於WP插件沒有編碼標準,您可能會因此而進入一個痛苦的世界。您必須在每次更新時對舊版和新版進行區分,沒有更好的方法來做到這一點......這就是爲什麼編輯第三方插件並不是一個好主意。 (當然,您可以在每次更改後簡單地複製整個插件目錄,以確保插件可以完全更改,而無需另行通知) –

+0

如果我至少能夠創建主文件的新實例,我會很高興然後編輯該文件,而不是原始位置的文件。 – developer10

+0

你的意思是在WordPress內,沒有任何FTP程序的幫助?有可能是一個插件,但也許你更容易從你的虛擬主機的控制面板做到這一點? –

回答

3

對於主題,Wordpress有一個「子主題」的概念,它允許完全:保持變化與主題分離,以防變化。

我還沒有找到一種方法,用插件來做到這一點。

我用了幾個自己的戰術:

  • 我碰到的插件版本99.9像一個非常高的數字。這種方式Wordpress不會更新插件。
  • 將我的插件存儲在版本控制中(我使用git,但沒關係),這允許您更新插件,運行'diff'工具並查看發生了什麼變化。如果你不喜歡你只是回覆它會是你寫的不好的代碼。但是這種方法需要一些技巧。
+0

所以你還沒有聽說將主插件.php文件移動到另一個位置(實際上是移動它的一個實例)的可能性?我不記得我讀過的地方是可能的。 – developer10

+0

環顧更多:如果您的插件支持_hooks_或_filters_,您可以在主題的functions.php中修改它們。非常像在兒童主題中。但插件必須支持。 –

+0

在我的第一篇文章中看到我的更新! – developer10

1

你是說同時修改第三方插件和更新版本的運行部分嗎?

這不會是可能的。沒有「保存我的更改並自動將它們轉移到新版本」的神奇方法。這裏的方法是在編輯版本和更新之間進行差異化,並將更改集成到實際源文件中。

底線是,如果您手動編輯第三方插件,一旦更新發生,您將手動審查(並可能返工)。這就是爲什麼廣泛修改第三方插件通常不是個好主意。

+0

是的,類似的東西。確切地說,我想改變通過聯繫表格7插件創建的聯繫表單的外觀。所以,不需要添加功能,只需更改HTML和CSS樣式。 我想我最近讀了一些關於從插件目錄中獲取主要.php文件,然後將其放入(活動主題??)目錄。然後,您可以編輯該文件並保留原始插件文件,從而避免更新丟失。 – developer10

+0

@denny它可能會也可能不會這樣做,它完全取決於插件的結構。如果HTML和CSS處於不同的文件中,您可以將其備份起來。但你也可能不會 - 這取決於插件,沒有這個綁定規則 –

+0

在我的第一篇文章中看到我的更新! – developer10