隱藏受密碼保護的文章不顯示於公開的頁面

如果你有習慣使用密碼鎖定文章提供給特定人士觀看但不想網頁上公開顯示「受保護的文章:XXXXX」時,可以考慮採用隱藏並直接提供給對方文章網址的方式來觀看密碼文章。

首先開啟你目前使用的佈景主題中的 functions.php 檔案,並於頁尾 ?> 之前插入以下的程式碼:

// Filter to hide protected posts
function exclude_protected($where) {
	global $wpdb;
	return $where .= " AND {$wpdb->posts}.post_password = '' ";
}

// Decide where to display them
function exclude_protected_action($query) {
	if( !is_single() && !is_page() && !is_admin() ) {
		add_filter( 'posts_where', 'exclude_protected' );
	}
}

// Action to queue the filter at the right time
add_action('pre_get_posts', 'exclude_protected_action');

 

這樣就可以隱藏 密碼文章 不顯示於公開的網頁上了。

資料來源:https://codex.wordpress.org/Using_Password_Protection

將全站或除特定頁面之外設為隱私限制登入瀏覽

如果說你希望你所架設的部落格限已註冊登入的使用者瀏覽的話,那可以參考本文所提出的修法方法來改寫自家的部落格使其成為非公開瀏覽的性質。

在主題(Theme)下的 functions.php 檔案置入以下程式碼,
就可以達到未登入者瀏覽網站都會被強制導向登入頁面。

function admin_redirect() {
   if ( !is_user_logged_in()) {
       wp_redirect( home_url('wp-login.php') );
       exit;
   }
}
add_action('get_header', 'admin_redirect');

 

如果說你希望只有首頁開放公開瀏覽的話
(但從首頁點進去的文章/分頁等連結還是會自動導向登入頁面)
可以加入 !is_home() 判斷條件來僅開放首頁。

function admin_redirect() {
   if ( !is_home() && !is_user_logged_in()) {
       wp_redirect( home_url('wp-login.php') );
       exit;
   }
}
add_action('get_header', 'admin_redirect');

如何讓 in_category 正確判斷子分類文章

如果有在用 in_category 這類參數做為判斷條件的人就會發現他判斷式是不包括該分類的子分類,如果說有要子分類文章也列入判斷條件的人可以看看以下官方提出的解決方法。

首先在你的佈景主題的 functions.php 檔案插入下面代碼(記得是插入在最後一行的 ?> 之前…)。

if ( ! function_exists( 'post_is_in_descendant_category' ) ) {
	function post_is_in_descendant_category( $cats, $_post = null ) {
		foreach ( (array) $cats as $cat ) {
			// get_term_children() accepts integer ID only
			$descendants = get_term_children( (int) $cat, 'category' );
			if ( $descendants && in_category( $descendants, $_post ) )
				return true;
		}
		return false;
	}
}

然後調用的參數寫法是:in_category( 'themes' ) || post_is_in_descendant_category(6)
上面的範例themes是指輸入該父分類的slug,再來後面的6是指該父分類的ID編號。

PS: 這可以運用在之前介紹過的 Widget Logic|側邊欄條件判斷顯示 外掛裡。

資料來源:http://codex.wordpress.org/Function_Reference/in_category

Custom Upload Dir|自訂上傳檔案的目錄結構名稱

 

外掛名稱:Custom Upload Dir(自訂上傳檔案的目錄結構名稱)
外掛版本:3.3.2 ( 相容性對應到 WordPress 3.3.2 )
下載網址:http://wordpress.org/extend/plugins/custom-upload-dir/

這個外掛功能就如標題描述的那樣,可以將原本檔案上傳的資料夾結構從原本只有年月的方式提升到如同固定網址那樣豐富變化性的效果,可以做到以作者或文章名稱或分類等等的變化,對於一個部落格有多位共筆作者來說是一個非常方便的管理檔案功能,可以很簡單就知道這個檔案是誰上傳或是這個檔案是來自哪個分類、文章等等。

在後台的新增外掛搜尋「Custom Upload Dir」找到並安裝完後就會在設定選單裡看到Custom Upload Dir項目了,進去後你就會看到如下的畫面。

Build a path template

你可以參考 Use any of these placeholders 的範例說明,只要在灰色代碼區塊用滑鼠點一下就會自動填進上面的輸入框了,當然也可以多層次的排下去,例如 /%category%/%postname%/ 就是顯示為 /plugins/dnui_delete-not-used-image/檔案名稱.附檔名 ,不過輸入完記得最後要加上斜線 / 符號喔。

Organize my uploads into month- and year-based folders

勾選這個項目的話就會以原本預設的年月資料結構後再加上你的自訂結構,所以我要是勾選的話就會變成 2012/02/plugins/dnui_delete-not-used-image/檔案名稱.附檔名 了。

Settings for taxonomy hierarchies

預設勾選 Always get all parents 就可讓上傳資料夾呈現階層式結構,如果你有其他需求可以下面三個勾選看看,然後在 Test it 輸入欲測試的文章ID 再送出後就會回傳顯示的資料夾結構範例了。

DNUI Delete not used image|刪除上傳圖檔的縮圖檔案

外掛名稱:DNUI (Delete not used image)(刪除將系統所產生的縮圖檔)
外掛版本:0.8.2 ( 相容性對應到 WordPress 3.3.2 )
下載網址:http://wordpress.org/extend/plugins/dnui-delete-not-used-image-wordpress/

這是解決系統產生的縮圖檔氾濫的問題,雖然說可以直接去FTP很阿沙力的一次全刪掉,不過會連原檔也刪到,要一個一個手動刪也挺費時的,所以感謝這位作者開發出了這麼親切好用的外掛(淚),可以直接在後台管理產生的縮圖檔清單,也可以知道到底上傳的原圖+系統產生的縮圖總共有多少及有多少是沒在使用的。
其實這外掛的名稱及功能翻譯應該是說刪除沒有使用到的圖檔,不過我覺得他最大用途是可以,批次性的只刪掉縮圖這個功能,所以就這樣稱呼它了(火乍)

外掛安裝完後,在後台的設定選單就會看到DNUI項目了,點進去後,輸入想要每頁顯示的圖檔數目再按下Make scan就會開始列出清單了,當然你如果想一頁就顯示全部的話就把數值Key大一點…

再來會Show出清單,你可以直接拉到最底按下全選按鈕再直接按下刪除就會開始進行刪除動作,別擔心這個全選動作並不會勾選到原圖的部份,只會勾到縮圖檔。

再來就會看到系統開始跑並列出執行結果,沒意外的話是都能順利刪掉縮圖檔。

去FTP逛還真的只刪了縮圖保留了原圖….

這外掛的用途在於說對於換了佈景主題的使用者來說是很便利的一項工具,因為當你有使用特色圖片時,會隨著所使用的佈景主題的不同而有不同的尺寸大小,當你切換到新主題時可以用這套外掛來刪除舊的縮圖然後再用Regenerate Thumbnails來重新產生新的縮圖,這樣就可以不必擔心轉換主題時所產生的縮圖新舊問題。

Regenerate Thumbnails|重新產生縮圖檔

外掛名稱:Regenerate Thumbnails(對上傳的圖檔重新產生縮圖檔)
外掛版本:2.2.3 ( 相容性對應到 WordPress 3.3.2 )
下載網址:http://wordpress.org/extend/plugins/regenerate-thumbnails/

當你後台的設定重新對媒體的縮圖尺寸重新指定過或是發現有的圖沒有縮圖或異常產生的話,就是這個外掛上場的時候了!!
安裝完後到後台的工具 -> Regenerate Thumbnails 就會看到了。

 按下按鈕就會開始自動產生縮圖了,使用上非常簡單,但有一點要注意的是當你改變了縮圖的尺寸來重新產生縮圖的話,他是不會把之前的舊尺寸縮圖檔給刪除的喔!! XD…. 算是他美中不足的地方吧…

另外也可以對單一圖檔來重新產生縮圖。

Custom Post Type Permalinks|自定義文章類型的固定網址

外掛名稱:Custom Post Type Permalinks (設定自定義文章類型的固定網址)
外掛版本:0.7.6 ( 相容性對應到 WordPress 3.3.1 )
下載網址:http://wordpress.org/extend/plugins/custom-post-type-permalinks/

之前有在這篇「WordPress 3.0 Custom Post Type|自定義文章類型」介紹到關於如何自定義出新的文章內容型態,但文中所用的 GD Custom Posts And Taxonomies Tools 這套外掛免費版的就沒提供如何再進一步去設定它的固定網址,除非你是用付費的進階版…. 別擔心,就算免費版沒我們還可以再加上去用其他的外掛來達成!

今天介紹的這套 Custom Post Type Permalinks 就是用來補足免費版所沒有的固定網址設定功能,安裝完後在設定的固定網址頁面就會看到下面多了這如圖下這塊:
custom-post-type-permalinks-01.jpg

works 是我設定的自定義文章的名稱,只要在框中輸入你想用的固定網址變數即可。
以我來說是想要
http:// home.com / Custom Taxonomies(自定義分類) / Custom Post name(自定義文章名稱).html

這樣的顯示方式,所以就是輸入以下內容……
/%works_category%/%works%.html

works_category 是我設定的自定義分類名稱,works 則是我設定的的自定義文章名稱,自行替換成你設定的名稱吧!

設定好後再回頭去編輯文章那個頁面就可以看網址是否有改變了,再連過去看是否正常。
不過裝完我才想到如果是要個別設定複數個Post Type的Permalinks好像就不行了?….

Arras 1.5.1.2: 將搜尋框移至Top-Menu右側

arras_top-menu_for_searchbar

最近有網友問到新版的Arras 1.5.0.1如何將那個搜尋框移到頂部選單去,雖然我家還是停留在1.4x多,不過既然有人問了就po篇改寫教學囉~~

首先開啟arras/header.php,在以下這段程式碼

 

的下一行加入以下程式碼


 

再來刪除約第92行附近的這段程式碼


 

最後開啟arras/css/styles/default.css

尋找以下這段程式碼

#top-menu-content  { height: 25px; padding: 3px 0; }

 

並改寫替換成如下

#top-menu-content  { max-width: 680px; float:left; height: 25px; padding: 3px 0; }

 

然後再上一行插入此段程式碼

#right-search  { float:right; }

 

Arras 1.5.1.2: 修改幻燈片中的黑色區塊樣式

因為有網友在問如何修改幻燈片中那段黑色區塊的高度及透明度,所以就順便PO成文章做做筆記囉~

Arras 1.4的改法:

設定高度
首先開啟arras-theme/css/styles/default.css,在第154行會看到如下這串:

.featured-entry			{ position: relative; top: 165px; overflow: hidden; background: #000; height: 85px; color: #a7a7a7; padding: 0; display: block; opacity: 0.8; filter: alpha(opacity = 80); }

其中height: 85px;就是黑色區塊的高度值,但是你在這邊增減數值時也相對的要在top: 165px;減增回去,比如說我把height設為65px,則top就要設為165+20=185px

設定透明度
一樣也是在那一行中尋找opacity: 0.8; filter: alpha(opacity = 80);,因為為了相容瀏覽器可以顯示透明度所以會有兩種數值,一邊是用小數點另一邊是用整數,如果要改到不透明的話就是設 1 (100) 啦~~

 

Arras 1.5.1.2的改法:

設定高度
也是開啟arras/css/styles/default.css,在約第147行會看到如下這串:

.featured-entry			{ background: #000; height: 85px; color: #a7a7a7; }

此外也開啟arras/css/base.css,在約第105行會看到如下這串:

.featured-entry  { position: relative; top: -85px; overflow: hidden; padding: 0; display: block; opacity: 0.8; }

其中default.cssheight: 85px;就是黑色區塊的高度值,比如說我想要高度為65px則就改為height: 65px!important;,然後base.csstop: -85px;也要相對應其數值改為top: -65px!important;,這樣就可以成功把高度改為你想要的大小了。

設定透明度
一樣也是在base.css的那一行中尋找opacity: 0.8;,如果要改到不透明的話就是設 1 啦~~

特集|WordPress In Tainan Part.2《WordPress 佈景型不型》

WPT02l.jpg

繼上次10月份的南部首 IN 會後緊接著在11月登場的主題是《WordPress 佈景型不型》,詳細的活動資訊請參照官網說明,這邊就不再累述喔。
這次的第二堂課主題是我最想上的一門,所以就算當天晚上還有班要上也照應”“是給它報下名上課去!! 哈~~

閱讀全文〈特集|WordPress In Tainan Part.2《WordPress 佈景型不型》〉

特集|Let’s WordPress in Tainan 南部首 IN 會

身為台南人的筆者每次看到有WordPress活動都是在北部都只有乾瞪眼的份…
這次終於在台南有要舉辦跟WordPress有關的活動了,就是 Let’s WordPress in Tainan 南部首 IN 會 !

 

閱讀全文〈特集|Let’s WordPress in Tainan 南部首 IN 會〉

特集|提升 WordPress 防護層級!

為什麼會有這篇文章的誕生呢?純粹是因為前陣子本站被駭了…….
本來對安全性沒下多大心思的我在這次決定苦下功夫提升對於 WordPress 的安全性!

讓 WordPress 常保持最新版本吧!

不論怎講新的一定比舊版的來的安全許多,當新的正式版本推出時請盡快更新吧!
當然,在更新前也請記得備份資料庫及檔案,以免在升級出現錯誤時還有得教。

 

換掉預設的管理員帳號名稱吧!

如果您當初在安裝WordPress 時沒做多想直接用預設的 admin 當管理員帳號是一件很不安全的事,這代表登入後台條件之一的帳號已經眾所皆知了,只要有心人士持續猜密碼就有可能被破解登入到後台,如果你已經用了這個當管理員帳號,可以安裝 WP-Optimize 這套外掛來進行更名動作。

 

請別設定太簡單的登入密碼!

再好的防護層級如果登入密碼太簡單太鳥那也形同於紙紮一般,所以請用點心思想想難度高一些的密碼,密碼的組成最好是英數混合+至少六位數以上會比較好。

 

別使用預設的WordPress 資料表前綴!

你在安裝時會要你修改wp-config.php時,你會看到有一段是以下這樣的內容:

/**
 * WordPress 資料表前綴。
 *
 * 若您為每個 WordPress 設定不同的資料表前綴,則可在同個資料庫內安裝多個 WordPress。
 * 前綴只能使用半型數字、字母和底線!
 */
$table_prefix  = ‘wp_’;

請別使用預設的wp_,改換自己想的前綴詞,這是為了防止 zero day 攻擊,至於已經運作中的該怎辦?
請參考此篇教學,本篇不再贅述。


再來就是用安全性外掛來提升防護層級,並且透過外掛來檢測自己的還有哪些安全性措施沒做好的。
以下是我目前使用中覺得還不錯的安全性相關外掛。

Secure WordPress

下載網址:http://wordpress.org/extend/plugins/secure-wordpress/
這個會在後台顯示可以執行哪些安全性措施,建議全選儲存,減少被駭的可能性。
而在右側欄是websitedefender的在線服務,註冊後可以去該網站看到自己的安全性層級是多少。

 

Semisecure Login Reimagined

下載網址:http://wordpress.org/extend/plugins/semisecure-login-reimagined/
這套外掛可以在你登入帳號或是在後台修改帳密時加密你的輸入資訊,安裝完就會自動啟用。

 

WP Security Scan

下載網址:http://wordpress.org/extend/plugins/wp-security-scan/
這套外掛可以檢測有哪些安全措施沒做的,像是我上面提的admin帳號、資料表前綴等等,此外他也會掃瞄CHMOD屬性,看有哪些目錄或檔案的CHMOD屬性沒設定好。

 

 Lockdown WP Admin

下載網址:http://wordpress.org/extend/plugins/lockdown-wp-admin/
這是我最推薦的安全性功能,它可以把以登入網址及後台管理網址給修改掉,將後台網址隱藏變成404 找不到網頁,然後把登入的網址進行更名,並且也支援HTTP驗證,可以選擇允許名單是註冊會員或是自定義額外的登入帳密。

 

WordPress Backup to Dropbox

下載網址:http://wordpress.org/extend/plugins/wordpress-backup-to-dropbox/
如果你有在使用Dropbox這個雲端服務的話,那麼這個外掛將會是你異地備份的好選擇之一,它可以將備份的FTP及SQL檔案定期同步到你的Dropbox空間裡,你可以選擇每週或是每月等週期來進行定期備份,這樣有助於在主機商掛點連資料都損失的狀況下還能救回資料。