WordPress 刪除 contact form 7 CF7 後台選單,除了網站管理員

除了網站管理員,刪除 contact form 7 CF7 後台選單

/**
* 刪除CF7選單
* https://v123.tw
*/
function v123_remove_menu_CF7() {
	if (!(current_user_can('administrator'))) {
		remove_menu_page( 'wpcf7' );
	};
}
add_action('admin_menu', 'v123_remove_menu_CF7');

 [……]

Read more

WordPress 修改摘要擷取字數

WordPress 在設定中可以設定顯示摘要的篇數,但沒有原生的設定可以設定列表文章摘要擷取字數,我們可透過 excerpt_length  這個 Hook 去修改需要顯示的字數。

可以參考下面這一段,將這段代碼加在主題的 functions.php 這個檔案最下方即可。

/**
* 自訂摘要擷取字數
* https://v123.tw
*/
function v123_custom_excerpt_length( $length ) {
    return 100;
}
add_filter( 'excerpt_length', 'v123_custom_excerp[......]

Read more

WordPress 修改列表文章摘要擷取字數

WordPress 在設定中可以設定顯示摘要的篇數,但沒有原生的設定可以設定列表文章摘要擷取字數,我們可透過 excerpt_length  這個 Hook 去修改需要顯示的字數。

可以參考下面這一段,將這段代碼加在主題的 functions.php 這個檔案最下方即可。

/**
* 自訂摘要擷取字數
* https://v123.tw
*/
function v123_custom_excerpt_length( $length ) {
    return 100;
}
add_filter( 'excerpt_length', 'v123_custom_excerp[......]

Read more

WordPress 使用 Namespace Warning call_user_func_array() expects parameter 1 to be a valid callback

在開發 WordPress Plugin 常用字串來代表 functions ,最常用的莫過於add_action() &add_filter()

add_action('init','function_name');
add_action('init',[$this,'function_name']);

add_filter('init','function_name');
add_filter('init',[$this,'function_name']);

實際上在 WordPress API 中是用 php call_user_func() 來執行傳入[……]

Read more

WordPress Contact Form 7 (CF7) 新增自訂義欄位

Contact Form 7 這插件應該不用我多說了,是WordPress百萬級插件,但他的表單欄位有限,是一些常用的欄位,這樣怎麼能應付刁鑽的客戶呢?本篇介紹幾種方式新增自訂義欄位

  1. 透過 CF7 shortcode 來建立自訂義欄位。
  2. 透過 CF7 的 wpcf7_form_elements 這個 filter 新增自訂欄位HTML。
  3. 透過 WP shortcode 新增自訂欄位HTML。

透過 CF7 shortcode 來建立自訂義欄位。

Contact Form 7 提供的 shortcode API 跟 WordPress 不同,Contac[……]

Read more

13個 WordPress 檔案下載管理插件

WordPress現在是一個功能強大的內容管理系統,支持超過27%的網絡,並且由於少數外部插件,可以處理各種不同的文件下載需求。

本地WordPress用戶界面確實有能力管理文件下載。但是,這不是管理文件的最簡單也是最有效的方式。另外,本地功能沒有一半的新功能和流行的WordPress下載管理器插件現在可用來幫助您管理文件。

根據您的需要,您可以輕鬆添加密碼保護,跟踪下載次數,整理文件以及阻止未註冊的用戶訪問文件。您還可以使用文件下載插件來跟踪文件修訂,甚至可以與團隊協作。當然,您可以使用文件管理插件來管理和銷售數字下載!

Download Attachments ( 免費[……]

Read more

jQuery TypeError: $(…). is not a function 簡單的解決方法

WordPress 開發插件,使用jQuery的時候出現下列錯誤

TypeError: $(…). is not a function

在 WordPress 中調用 jQuery 選擇器(Selector)不能使用金錢符號  $  ,原因我也不知道

 
$(...){}

要使用 jQuery 作為選擇器 (Selector)

 
jQuery(...){}

但有些是以前寫的,要把它們運用在WordPress上前要把所有金錢符號  $  都改掉,有點麻煩,也可能會造成未知的Bug,因此,可以使用以下方法簡單解決這問題

解決方法:

於 jQuery 載入完成後加上以下[……]

Read more

WordPress Load css or script in Footer

主題或外掛載入 CSS 或 JS 檔案

一般情況下,會在 Head 中載入 CSS & JS 檔,可參考此篇:
WordPress 插件或主題載入 CSS & JS 檔案

於 Footer 中載入 CSS 或 JS 檔案

放在 footer 中主要有兩種情況,不那麼重要的檔案,放在 Footer 中最後載入,可以增加頁面開啟的速度,另外一種就是主題或插件把 style 直接 output 在頁面中,我們在 Head 中載入的 CSS 無法覆蓋這些樣式,所以放到 Footer 以覆蓋這些樣式。

範例:

  
<?php

/**
* v123.tw[......]

Read more

WordPress 文章不分頁顯示全部,不使用WP_Query(),使用pre_get_posts

不限制顯示文章筆數(文章不分頁)

在自訂頁面上顯示所有文章,我們可以用 WP_Query()  輕易達成, 在 posts_per_page 參數設為 -1 即可,但有時我們需要在主題頁面上顯示所有文章,但又不想再跟資料庫要一次資料,多少會影響效能,或是開發插件,並不會去動到主題,所以就沒辦法使用 WP_Query()  ,所以可以改使用 pre_get_posts  這個鉤子,去修改Main Query 參數,下方針對兩種方法作介紹。

使用 WP_Query()

 
<?php

$args = array(
	'cat'=>array(6),
	'post_st[......]

Read more