WordPrdss single page template by category

WordPress 主題的命名規則,沒有針對指定分類文章內容頁的命名規則

但實務上很常見,可能需依據文章分類,提供不同主題,例如:親子話題、旅行玩樂、時尚精品,每個分類都希望有不同的視覺效果或功能,目前 WordPress 主題的命名規則只提供分類聚集頁主題明明規則,但沒有分類下文章內容頁

所以我們需透過 WordPress API 代碼的方式來判斷當前文章,讓分類下的文章都套用指定模板。

文章類別 (category)

把下方代碼,置於主題目錄中的 function.php 中

/**
 * single page template by category
 * 取得[......]

Read more

WordPress custom single page template

方法一、模板檔名規則

WordPress 提供利用檔名命名的方式設定 post type 內容頁的自訂模板:

single-{post-type}.php
archive-{post-type}.php
search.php
index.php

上方的檔名順序,代表WordPress查找模板的順序,大括號中代表自定義文章類型( custom post type ) 的slug,如果自定義文章類型的slug為 news,自定義文章類型內容頁主題依序為:

single-news.php
archive-news.php
search.php
index.php

若 single[……]

Read more

WordPress 連結由「絕對路徑」改為「相對路徑

WordPress 原生絕對路徑轉相對路徑的方法 wp_make_link_relative 在 /wp-includes/formatting.php

過濾連結

連結相關的過濾器 (filter),透過 wp_make_link_relative 把絕對路徑改為相對路徑

Example:

add_filter( 'the_permalink', 'wp_make_link_relative' );

過濾所有連結

一次轉完所有連結相關的過濾器 (filter) ,但排除 WordPress sitemap 中的連結,WordPress sitemap 仍維持絕對路[……]

Read more

WordPress Contact Form 7 簡碼中插入javascript

利用 do_shortcode_tag 這個 Filter 驗證執行的簡碼是不是 contact-form-7

再驗證簡碼參數id , 是否為目標 contact-form-7 的 id

Example:

add_filter('wp_enqueue_scripts', 'register_my_script');
function register_my_script(){
    wp_register_script( 'my-cf7-script', get_stylesheet_directory_uri() . '/assets/js/cf7.js', array([......]

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