如果你想寫一些長篇文章
希望讓讀者對你的
文章目錄重點
一目了然,那你可以使用這個方法
這是最簡單的方式
標題設置h2自動成為目錄
打開主題的 functions.php
下面增加以下代碼
若你不想用h2,你可將代碼的h2改成h3或h1,以此類推
存檔後,再將css代碼放入適當的位置
[cc lang="css"] /* 文章目錄CSS */ #content-index-wrap { -moz-border-radius: 6px 6px 6px 6px; border: 2px solid #b70b6a; float: right; margin: 0 0 15px 15px; padding: 0 6px; width: 210px; line-height: 23px; border-radius: 10px 10px 0px 0px; background: #FFF; } #content-index { border-bottom: 3px dashed #b70b6a; display: block; line-height: 30px; padding: 0 4px; } #index-ul { margin: 0; padding-bottom: 10px; } #index-ul li { background: none repeat scroll 0 0 transparent; list-style-type: disc; padding: 0; margin-left: 20px; } [/cc]
所有文章
當你測試一大堆主題的時候,你將會發現
未啟用的小工具有很多
不再那麼乾淨了
那麼你可以用以下代碼清除或刪除wordpress未啟用的小工具
一樣打開主題的functions.php
貼入以下代碼
[cc lang="php"] #刪除WordPress未啟用的小工具 #刪除小工具後,可以刪除本代碼 function shanchu_xiaogongju(){ $widgets = get_option( 'sidebars_widgets' ); $widgets['wp_inactive_widgets'] = array(); update_option( 'sidebars_widgets', $widgets ); } add_action( 'init', 'shanchu_xiaogongju' ); [/cc]當有人想複製你網站的內容時!
你又希望他能註明出處
像這樣圖一
複製後,他轉貼到word或其他地方時
自動給他增加版權資訊出現
圖二
打開主題的functions.php貼入下面代碼
- function sheruo_copyright() { ?>
- function addLink() {
- var body_element = document.getElementsByTagName('body')[0];
- var selection;
- selection = window.getSelection();
- var pagelink = "<br /><br /> 出處: <a href='"+document.location.href+"'>"+document.location.href+"</a><br />Copyright © text is here"; // change this if you want
- var copytext = selection + pagelink;
- var newdiv = document.createElement('div');
- newdiv.style.position='absolute';
- newdiv.style.left='-99999px';
- body_element.appendChild(newdiv);
- newdiv.innerHTML = copytext;
- selection.selectAllChildren(newdiv);
- window.setTimeout(function() {
- body_element.removeChild(newdiv);
- },0);
- }
- document.oncopy = addLink;
- </script>
- <?php
- }
- add_action( 'wp_footer', 'sheruo_copyright');
你可以自行修改語法內的中文字
代碼由https://gist.github.com/umidjons/8612712
Wordpress優化seo策略一:
文章或是頁面的標題非常重要
關鍵字+原創標題or原創標題+關鍵字
Ex:
我曾經寫一篇「臺北健康講座」的原創文章,當時用美國爛爛的主機,居然連續兩個月都上奇摩搜尋第一頁。
結論:
當科技越發達,網路資源重複的時候,
搜尋引擎的公司,對於新的連結、新的標題、新的原創內容
是非常重要的!
Wordpress優化seo策略二:
使用固定連結選「文章名稱」
Wordpress優化seo策略三:
什麼是canonical優化?這也是我喜歡wordpress的地方。
Canonical是指:避免讓搜尋引擎收錄「不同連結卻是同樣的內容」
這會造成內容重複,導致被當做垃圾
但關於這點,對於使用wordpress的我們,不需要煩惱
WordPress 現在的版本自動優化Canonical 標籤了!
Wordpress優化seo策略四:
1學習用「
」寫內文關鍵詞
2使用關鍵字寫作法
Wordpress優化seo策略五:
文章或頁面可以用圖片來優化搜尋
重要是要把圖片設名稱
Wordpress優化seo策略六:
主動定期提交到搜尋引擎
登入奇摩和bing:http://www.bing.com/toolbox/submit-site-url
登入google:https://www.google.com/webmasters/tools/submit-url?hl=zh_TW
註:登入給bing,奇摩也會找到
Wordpress優化seo策略六:
製作網站地圖,提交給搜尋引擎
更多內幕的優化SEO法!
特殊符號圖案
|
錯對符號
|
愛心符號
|
十二星座符號
|
箭頭符號
|
數字符號
|
英文符號
|
數學符號
|
框線符號
|
填色方塊符號
|
手花符號
|
天氣符號
|
西洋棋符號
|
宗教符號
|
星星符號
|
貨幣符號
|
表情符號
|
音樂符號
|
標點符號
|
圓圈中文字圖案
|
希臘字母符號
|
日文符號
|
韓文符號
|
特殊字母符號
|
注音符號
|
國際音標符號
|
郭師兄:基本上,比較重要的是創造角色,配合此篇「WordPress實現角色權限等級、是否登入等隱藏部分文章內容(純代碼不外掛)」
WordPress 在 2.0 版本中引入了角色和權限(Roles and Capabilities)系統,以前的使用者等級的方法(User Levels)已經被棄用。但是還是有很多外掛程式和主題仍然使用使用者級別的方法來控制使用者查看設置頁面和其他功能。所以這篇指南將詳細介紹 WordPress 的角色和權限系統,最終將讓你在你的外掛程式和主題中能夠正確使用。
什麼是角色和權限?
和其他 CMS 或者 Web 程式一樣,WordPress 也有一個內置的系統來驗證一個特定的用戶是否有足夠的權限來進行某種動作。WordPress 這個內置的系統就是角色和權限系統,它首先將使用者分為角色(Role),然後給每個角色都分配一定的權限。
下面是 WordPress 默認的用戶角色:
-
管理員 -擁有所有的管理權限
-
編輯 -發表文章,編輯文章,以及編輯其他人的文章,等等。
-
作者-發佈和編輯自己的文章
-
投稿者 -撰寫和編輯自己的文章,但不能發佈
-
訂閱者 -查看評論/添加評論/查看文章,等等。
WordPress 的角色和權限系統比使用者等級的方法靈活得多,它支援對現有用戶角色添加,刪除和重新分配權限,甚至還可以添加更多的用戶角色,並且不破壞系統原有內置的使用者角色。
使用者權限和後臺功能表
很多外掛程式都都會在 WordPress 後臺添加一個管理頁面,讓使用者自訂外掛程式選項,一般我們可以通過下面的函數實現:
// 添加主菜單
add_menu_page(page_title, menu_title, capability, handle, [function], [icon_url]);
// 添加子功能表
add_submenu_page(parent, page_title, menu_title, capability, file/handle, [function]);
//添加選項功能表子功能表
add_options_page(page_title, menu_title, capability, handle, [function]);
//添加工具功能表子功能表
add_management_page(page_title, menu_title, capability, handle, [function]);
//添加頁面功能表子功能表
add_pages_page( page_title, menu_title, capability, handle, [function]);
//添加文章菜單子功能表
add_posts_page( page_title, menu_title, capability, handle, [function]);
//添加主題功能表子功能表
add_theme_page( page_title, menu_title, capability, handle, [function]);
我們很容易發現,這些函數都會有個參數:capability
,這個參數就是用來指定使用者看到該功能表所需要的權限。一般它的值是一個代表某種權限的字串,比如:edit_posts
。所以使用這些額函數在 WordPress 後臺中添加的功能表以及與這些功能表相關聯的頁面,是只有擁有指定的權限的用戶才可以看到和訪問的。
如果你的主題或者外掛程式有設置頁面,應該正確的控制哪些用戶有權限可以訪問這些頁面,比如,添加的是一個主題選項頁面,就應該使用 edit_themes
權限,而添加的是一個外掛程式選項頁面的話,使用的應該是 edit_plugins
權限,當然也可以直接 manage_options
權限來控制訪問外掛程式和主題選項頁面。
許多外掛程式仍然使用使用者等級系統(用從0到10的數位代表使用者的權限),但是 WordPress 已經廢棄了等級系統,不應該再被使用。所以使用權限系統,就不必去擔心 WordPress 不再支援使用者等級系統,並且如果想添加和使用自訂的權限,也只能使用權限系統。
檢查用戶的權限
如果使用的外掛程式或主題允許使用者更改博客的資料(添加新的內容或編輯現有的內容等),那麼我們就要檢測當前用戶是否有足夠的權限來執行這些動作,這個時候我們可以使用 current_user_can() 這個函數:
if ( current_user_can( $capability ) ) {
//如果用戶擁有 $capability 的權限時執行的動作。
}
此函數也可以接受一個可選的參數:postID,用來檢查當前用戶是否有權限對特定文章進行某種操作:
// 檢測用戶對 ID 為 $post_ID 的日誌是否有編輯的權限 current_user_can( 'edit_post', $post_id );
還有另外一個函數:author_can(),可以用來檢查某個文章的作者是否具有一定的權限:
if ( author_can( $post, $capability ) ) {
// 如果文章 $post 的作者擁有 $capability 時執行的動作
}
函數 author_can
第一個參數可以是一個 $post 物件,或一個 Post ID。
添加自訂用戶角色
有時需要為外掛程式添加新的使用者角色,比方說,我們要編寫一個新的相冊外掛程式,用戶可以註冊並上傳照片到網站,但是我們不希望這些註冊用戶可以添加或修改網站上任何其他類型的內容(如文章或頁面)。為了做到這一點,最好的辦法就是添加一個新的自訂用戶角色:
添加自訂使用者角色用到的函數是:add_role(),它會添加含有一組權限的一個新的用戶角色,這裡我添加一個叫做 ‘photo_uploader’ 的使用者角色,它顯示的名字是:’Photo Uploader’,它默認的權限是:’organize_gallery’:
add_role( 'photo_uploader', 'Photo Uploader', array( 'organize_gallery' ) );
創建好用戶角色之後,當一個用戶創建,編輯或上傳相冊的時候,我們就可以使用 current_user_can( 'organize_gallery' )
來檢查當前用戶是否有權限了。
並且被賦予了這個角色的用戶只可以 organize_gallery
,但不能 edit_posts
或 publish_posts
,所以我們無需擔心他會修改網站其他內容了。
要刪除一個角色,使用 remove_role() 函數,比如當使用者決定卸載外掛程式時,就應該有一個選項讓外掛程式的使用者可以刪除這些自訂角色:
remove_role( 'photo_uploader' );
添加自訂用戶權限
如果我們想為現有用戶添加權限該怎麼辦呢?繼續我們的相冊外掛程式的例子,我們想讓作者也有上傳圖片的權限,我們可以使用 add_cap() 函數:
//獲取 "author" 的角色物件
$role = get_role( 'author' );
//為角色物件添加 "organize_gallery" 權限
$role->add_cap( 'organize_gallery' );
WordPress的權限類
我們已經討論過了檢查和添加權限,以及添加角色,這是管理 WordPress 使用者權限最常用的函數。然而,正如這篇文章的標題包含“終極”二字一樣,我們會介紹WordPress 用於角色和權限幕後工作的三個類,以及這些類提供的介面,我們可以在外掛程式中進行高級權限管理。這三個類是:
-
wp_Roles
-
wp_Role
-
wp_User
這三個類的原始程式碼可以在 wp-includes/capabilities.php
中找到,原始程式碼注釋寫得很詳細,下面總結一下怎樣使用這些類:
wp_Roles 類
wp_Roles 是一般的角色管理類,當我們在外掛程式中使用的時候,可以不用產生實體一個新的物件,而是直接使用 WordPress 預設創建的一個全域物件 $wp_roles
,可以在任何地方使用它,只要事先聲明 global
即可:
global $wp_roles;
我們上面使用的函數 add_role()
和 remove_role()
實際上是 $wp_roles->add_role()
和 $wp_roles->remove_role()
的別名。因此,我們也可以直接使用 $wp_roles
物件添加和刪除角色,例如:
global $wp_roles;
//添加新角色,和add_role()功能一樣
$wp_roles->add_role( $role, $display_name, $capabilities )
//刪除角色, 和remove_role()功能一樣
$wp_roles->;remove_role( $role );
同樣也可以使用這種方法得到一個角色:
global $wp_roles; //通過角色名稱得到一個角色,和get_role()功能一樣 $wp_roles->get_role( $role );
還可以得到一個可用角色列表,含有角色的名稱和角色的顯示名稱。這個對想為使用者提供一個介面,改變權限分配時候非常有用的。
global $wp_roles; //得到一個值列表包括 $role_name => $display_name $roles = $wp_roles->get_names();
最後可以使用 $wp_roles
添加和刪除權限,此物件幾乎包括所有的角色和權限操作。
global $wp_roles;
//為角色$role添加權限$cap
$wp_roles->add_cap( $role, $cap );
//為角色$role刪除權限$cap
$wp_roles->remove_cap( $role, $cap );
//例子
$wp_roles->add_cap( 'administrator', 'manage_galleries' );
$wp_roles->remove_cap( 'subscriber', 'view_galleries' );
wp_Role 類
這是一個非常簡單的類,它的功能就是添加和刪除權限。
//得到角色物件
$role_object = get_role( $role_name );
//為角色物件添加權限$cap
$role_object->add_cap( $capability_name );
//為角色物件刪除權限$cap
$role_object->remove_cap( $capability_name );
wp_User類
這個類可以管理每個用戶的角色和權限,這意味著可以為一個特定具體的用戶分配多個角色,或者為當前用戶添加特定的權限,不論他目前是什麼角色。
首先需要獲取使用者物件來操縱它的角色和權限:
//通過使用者ID得到使用者物件
$user = new wp_User( $id );
//或者通過用戶名
$user = new wp_User( null, $name );
我們可以通過使用者ID或用戶名得到一個使用者物件。對於第二種方法,第一個參數必須是空的(null
或空字串),如:
//通過ID得到管理員物件
$admin = new wp_User( 1 );
//通過用戶名得到管理員物件
$admin = new wp_User( null, 'admin' );
一旦得到了使用者物件,就可以為這個用戶的添加另一個角色,而無需修改他目前的角色,這意味著用戶可以有多個角色:
$user->add_role( $role_name );
也可以使用 remove_role()
,來為該用戶刪除某個角色:
$user->remove_role( $role_name );
還可以為該用戶設置一個角色,這意味著該用戶將被刪除當前所有的角色,並分配一個新的角色:
$user->set_role( $role_name );
對於權限操作,也有很多的方法來做各種事情:
//檢查該用戶是否具有某種權限或角色名稱
if ( $user->has_cap( $cap_name ) ) {
//做一些事
}
//為用戶添加權限
$user->add_cap( $cap_name );
//為用戶刪除權限
$user->remove_cap( $cap_name );
//刪除用戶所有權限
$user->remove_all_caps();
WordPress 角色和權限之結論
首先,我們完成wordpress後,我們希望一些文章給
不同權限的會員閱讀
登入後才能樂讀
自創角色才可以閱讀
又不想使用外掛,那我們可以使用以下代碼來完成
第一步,開啟主題 functions.php,將下面代碼貼入
[cc lang="php"] //WordPress實現角色權限等級、是否登入等隱藏部分文章內容 add_shortcode('eyesonly', 'sc_eyesonly'); function sc_eyesonly($atts, $content = null) { extract(shortcode_atts(array('username' => null, 'level' => null, 'logged' => null,'hide' => null,),$atts)); if (!$hide || $hide === 'no' || $hide === 'false'){$pre = null; $thecontent = do_shortcode($content);} if ($hide && $hide !== 'no' && $hide !== 'false'){$pre = do_shortcode($content); $thecontent = null;} $showcontent = $pre; $current_user = wp_get_current_user(); $users = preg_split("/[s,]+/",$username); $levels = preg_split("/[s,]+/",$level); foreach($users as $name){if($username && $current_user->user_login === $name){$showcontent = $thecontent;}} foreach($levels as $value){if($level && current_user_can($value)){$showcontent = $thecontent;}} if($logged && is_user_logged_in() && $logged === 'in'){$showcontent = $thecontent;} if($logged && !is_user_logged_in() && $logged === 'out'){$showcontent = $thecontent;} return $showcontent; } [/cc]
第二步,以上代碼添加了一個有多個參數可用的簡碼:
[eyesonly][/eyesonly]
參數為:
[cc lang="php"] // ogged="in|out" //必要數值,登入/登出 // level="anyrole, any_capability" //必要數值,可以填寫角色或能力,或自創角色 // username="anyusername" // 必填參數,直接填寫用戶名 // hide="yes" // 選填數值,是否隱藏 [/cc]
logged="in|out" //必填參數,登入/登出
level="anyrole, any_capability" //必填參數,可以填寫角色或能力
username="anyusername" // 必填參數,直接填寫用戶名
hide="yes" // 選填參數,是否隱藏
註:前三個必填參數至少使用其中一個,當然可以兩個,或三個一起用。
範例一:如果你想讓內容只有 ‘administrator’ 和自訂角色 ‘customrole’,以及擁有能力 ‘moderate_comments’ 的用戶可見
你調用的代碼則是
[cc lang="php"] [eyesonly level="administrator, customrole, moderate_comments"] 任何內容 [/eyesonly] [/cc]
範例二:內容對未登入者隱藏、以及 ‘subscriber’ 或 ‘customrole’ 這兩種角色的用戶都隱藏
調用的代碼則是[cc lang="php"] [eyesonly hide="yes" logged="out" level="subscriber customrole"] 任何內容 [/eyesonly] [/cc]
範例三:內容只有 administrator 這種角色的用戶、以及用戶名為 ‘joebob’ 和 ‘billyjean’ 的用戶(不一定是 administrator 角色)可見
調用的代碼則是
[cc lang="php"] [eyesonly username="joebob, billyjean" level="administrator"] 任何內容 [/eyesonly] [/cc]
範例四:在同一個位置顯示內容,對已登錄和未登錄使用者顯示不同內容
調用的代碼則是
[cc lang="php"] [eyesonly logged="in"] 已登錄用戶可見 [/eyesonly]2. [eyesonly logged="out"] 未登錄用戶可見 [/eyesonly] [/cc]
範例五:只有 administrator 角色的用戶可見
調用的代碼則是
[cc lang="php"] [eyesonly level="administrator"] 任何內容 [/eyesonly] [/cc]
範例六:內容對 administrator 角色的使用者、以及擁有能力 ‘custom_capability’ 的用戶隱藏
調用的代碼則是
[cc lang="php"] [eyesonly hide="yes" level="administrator custom_capability"] 任何內容 [/eyesonly] [/cc]
現在,大家有看過六種不同調閱代碼的範例,大體而言應該會使用了吧!
若要更詳細,可以參考https://wordpress.org/plugins/eyes-only-user-access-shortcode/
1.要學會使用測速網站
https://developers.google.com/speed/pagespeed/insights/
將網址輸入進去後,點「分析」
就會看到分數,於是根據裡面來做改善
2.主機的選擇很重要
好的主機會直接影響你對搜尋引擎的排名
尤其是主機供應商,若本身有提供黃頁服務
那你排名的優化會增加
3.根據分析來做改善
►減少伺服器回應時間-是虛擬主機的問題
►清除前幾行內容中的禁止轉譯 JavaScript 和 CSS
可以使用wordpress的w3 total cache外掛
►最佳化圖片-使用CaesiumPortable壓縮圖片
►啟用壓縮功-這是最重要的,若沒有啟用
你如果是租用虛擬主機,請寫信或打電話給主機供應商,請他們開啟
開啟後,速度將會大幅提昇。
4.wordpress的外掛,使用5-6個,不超過9個
有很多外掛不需要
尤其是一個主題,它所附帶的外掛,是不用安裝的
可視化編輯器不需要
5.沒有使用的外掛要刪除
像匯入.xml的外掛,使用完畢就可以刪除
甚至是wp-clean-up這種清除資料庫的外掛,清除好後,也可以刪除
6.刪除google的字型,可以讓wordpress加速
刪除的原因是因為google的字型是英文字,我們是不會用到的!
把下面兩種代碼,選擇一種放入主題中的functions.php中:
代碼1:
- // Remove Open Sans that WP adds from frontend
- if (!function_exists('remove_wp_open_sans')) :
- function remove_wp_open_sans() {
- wp_deregister_style( 'open-sans' );
- wp_register_style( 'open-sans', false );
- }
- // 前臺刪除Google字體CSS
- //add_action('wp_enqueue_scripts', 'remove_wp_open_sans');
- // 後臺刪除Google字體CSS
- add_action('admin_enqueue_scripts', 'remove_wp_open_sans');
- endif;
代碼2
- function remove_open_sans() {
- wp_deregister_style( 'open-sans' );
- wp_register_style( 'open-sans', false );
- wp_enqueue_style('open-sans','');
- }
- add_action( 'init', 'remove_open_sans' );
二種代碼選其中一種,就可解決wordpress速度變慢的問題了。
今天我們要使用WP Clean Up
優化我們的wordpress
這是一套很實用的外掛
只要輕輕按下按鈕
即可
1.清理[自動儲存草稿]、[儲存修改過往版本]
2.安全清理[WordPress數據庫],裡面的垃圾
那麼你網站的速度就會加速
做法
進入wordpress後台,選「外掛」➡「安裝外掛」
➡搜尋「WP Clean Up」➡安裝
啟用後
從設定➡WP Clean Up➡下圖
按刪除所有,即可把不必要的刪除
第二步,移下來
按優化數據庫,刪除不必要的數據
可能是沒再用的外掛資料等等
數值變少囉!大功告成
在WooCommerce Checkout頁面上,我們看到有些字段是絕對必需的,而有些字段可以保留為空。
但是,根據您的用例,有時您可能需要客戶將可選字段視為必填字段,或將強製字段視為可選字段。這篇文章解釋瞭如何在WooCommerce Checkout頁面上修改字段並使字段成為必填或可選字段。
使“公司名稱”字段為必填項
- /**使“公司名稱”字段為必填項**/
- add_filter( 'woocommerce_billing_fields', 'ts_require_wc_company_field');
- function ts_require_wc_company_field( $fields ) {
- $fields['billing_company']['required'] = true;
- return $fields;
- }