WordPress 2.8版資料庫結構更新

之前有在wordpress上開發外掛
對wp_posts資料表進行操作
在設計外掛的時候
就發現~wp_posts有一個欄位是記錄文章分類的欄位
這個欄位本來就沒有什麼作用
因為真正在處理分然和標籤的另外還有3個table
因為網站搬家的關係
我不想要那些資料了
只想保留域名和網站
於是建了新的database strature
結果~外掛不會運作
才發現~那個記錄文章分類的欄位不見了
早就該這樣了~真是的

WordPress 2.8.1版出現

好不容易,從wordpess 2.7.1升到wordpress 2.8.0,結果今天登入後台,2.8.1更新版出現了,搞不懂,為什麼才幾天就出現更新版。

之前wordpress 2.8.0就有聽說會如期發佈,在我看來,可能是趕著推出,不然wordpress 2.8.1更新版怎麼這麼快就出來了。

我還有好多個wordpress的Blog在2.7.0/2.7.1,更版快速,不知道是不是一件好事。

果不其然,看到官方文件,修正了很多的Bugs,另外,也接到安全性組織的報告,如果裝了某些的Plugin之後,可以看到一些非經授權的內容,這表示,這個版本的安全性做的不夠好,還是趕快修正好了。

WordPress 2.8.1 fixes many bugs and tightens security for plugin administration pages. Core Security Technologies notified us that admin pages added by certain plugins could be viewed by unprivileged users, resulting in information being leaked. Not all plugins are vulnerable to this problem, but we advise upgrading to 2.8.1 to be safe.

What else is new since 2.8? Read through the highlights below, or view all changes since 2.8

  • Certain themes were calling get_categories() in such a way that it would fail in 2.8. 2.8.1 works around this so these themes won’t have to change.
  • Dashboard memory usage is reduced. Some people were running out of memory when loading the dashboard, resulting in an incomplete page.
  • The automatic upgrade no longer accidentally deletes files when cleaning up from a failed upgrade.
  • A problem where the rich text editor wasn’t being loaded due to compression issues has been worked around.
  • Extra security has been put in place to better protect you from plugins that do not do explicit permission checks.
  • Translation of role names fixed.
  • wp_page_menu() defaults to sorting by the user specified menu order rather than the page title.
  • Upload error messages are now correctly reported.
  • Autosave error experienced by some IE users is fixed.
  • Styling glitch in the plugin editor fixed.
  • SSH2 filesystem requirements updated.
  • Switched back to curl as the default transport.
  • Updated the translation library to avoid a problem with mbstring.func_overload.
  • Stricter inline style sanitization.
  • Stricter menu security.
  • Disabled code highlighting due to browser incompatibilities.
  • RTL layout fixes.

外掛不要亂用,會影響整個網站的運作

WordPress有許多好用的外掛,當然外掛的相容性是要考慮的,另外就是外掛對整體網站運作的影響。

那天我開了一個外掛~就在右側邊欄上的那個隨機圖片~
一次開20個張圖~每個圖抓150*150 PIXEL
結果….流量多了40倍以上
為什麼多了3倍~
1個圖20k,20個圖400KB,加上文章中本來有的圖,網路蜘蛛來抓資料的流量,
多個40倍流量還算小的咧
我看了一下報表
沒有掛之前每天不約40M左右
掛了之後呢?1.5G起跳,最多到2.6G
天啊~這樣一個月就要500~700G的流量~
那個台灣的網路商頂的住啊?
我還不是人氣網站咧

Read more

定時發文外掛測試

之前下載了一個外掛,讓系統在有新文章發佈時,自動寄送郵件。

但是我好奇的一件事就是~
如果我使用預約發文的時候會出現什麼樣的情形

什麼叫做預約發文呢?就是文章我先在wordpress寫好
設定好發文的時間,然後系統在那個時間來幫我公佈文章

測試1
wordpress在指定的時間時是否能夠正確發文
因為…發文還是要掛進Cron Job中

測試2
就是如果wordpressw如果正確發文
那外掛會不會正確的發信

時間設定好囉!再來就看結果囉!

破解WordPress 佈景主題的編碼

有些布景主題,為要怕你動他的連結~
通常來說 會在footer.php中加編碼
編碼長的像下面的樣子

假設 你用了這個佈景主題…
那你就增加了作者網站的反向連結~
設計的越好~越多人用~反向連結就越多~
當然…對作者網站的排名是有幫助的
如果是這樣~也就還好
但是~如果上面放了木馬~
哪該怎麼辦?
ps.從官方網站來的~比較不用擔心

今天看到一篇文章~
教大家怎麼去把編碼的foot.php破解掉
放上我們要用的東西

其實概念很簡單~
在index.php中~把呼叫footer的前後做記號

再來~開啟網頁~
找尋剛才我們加入的<!— Fotter開始 –>

看到了沒~原來他裡面放了好幾個連結
而且還有google的追蹤碼~
這個追蹤碼是javascript
如果~他要放個病毒~也可以~
接下來~
把開始和結束之間的內容進行修改~
再回存fotter.php(整個蓋掉)
就完成破解的動作
那麻~有沒有破不了的
當然有….
不過…我還沒有遇到

wordpress post_tag and category 限制

原本想說~wordpress的post_tags當成keyword資料來源:
但是 因為 之前提到的 wordpress 資料庫過度正規化[請參閱 wordpress 資料庫正規化之我思….」
所以造成文章在更新tags及category時相當的麻煩
都想說~反正麻煩一次就好了~就來蠻幹好了~
看了一下資料庫的結構

2009-03-15_210652.png
看了資料庫結構~
真的很想哭~
name是index~(我的臉色變了)
slug是從name編碼來的~
slug是unique~就就是說~category及tags不能重覆~
OH-MY-GOD
category分類的名稱不能當成post_tag的名稱
這樣講怎麼合理~
假設一個資料豐富的站
有一個分類叫作「電腦科技」
剛好有一篇文章~在講環保節能減碳的~
談到Google的電腦科技~是造成電力浪費的主因之一~
糟了~加了關鍵字~自動bypass掉了….靠北邊走….
實在有夠鳥的~還好~有外掛工具可以輔助…

用mysql的trigger完成ping service

因為進行wordpress的二次開發
無法自動進行PING的動作
所以~花了時間去研究一下 mysql 的trigger要怎麼做
目前可以做到的~
在新增文章~或是更新文章的時候~
會自動新增(修改)另一個資料表
只要一個小程式~就可以判斷哪些文章還沒有PING過~
或是那一篇文章~修改過了~待PING

玩起來~還蠻有趣的~
今天~晚上算是玩樂~
而不是工作~哈哈

wordpress 資料庫正規化之我思….

在處理wordpress tags/category時………
真的是說不出來的感覺
他把 tage/category分成3個表
第一個表~記錄tags/category的名稱
第二個表~記錄tags/category的種類[tags|category]
第二個表~記錄tags/category與文章的關係(一篇文章可掛在多個分類~使用多個tags)
基本上~只要分2個表就好了…….實在不懂為什麼分成2個表
這樣~也沒有比較會厲害… Read more

wordpress 二次開發

外面一堆文章說wordpress的使用者編碼是MD5
其實~測試的結果是~他可以接受2種編碼
第一種編碼~我不確定是什麼編碼方式~
長的像這樣 $P$BU2RGPBzC0ITA918rljQxn.EYW3ul5/
第二種編碼~MD5 hash
長的像這樣 481ab5322e207670008856dafdb74bda
假設~我們使用MD5編碼去改「忘記」的密碼(mysql/phpmyadmin)
是可以登入的~但是….登入之後~MD5編碼會被改掉
所以…..再用原來的password登入之後~
就會登入失敗~
所以…如果要做二次發的時候
……..怎麼辦咧
還是有可能前台後來進進出出…
只好蠻幹~登入之前這麼做
查看看這個使用者在不在~不在的話~就insert這個使用者
如果在的話….就去更新密碼
但是….問題又來了~
wordpress的使用者權限是記在wp_usermeta中~該不會又要再塞一次值吧!
實在給他#$%^&*()(*&^%$……..遜到爆