functions.php 在哪,functions.php常用函數

在設計WordPress主題時,在functions.php文件里添加一套通用的自定義函數將會大大提高開發效率,這樣就不必每次開發主題時都需先查找然后復制同樣的函數。這里記錄一些常用的函數,方便以后使用!

給頭部添加feed鏈接

WordPress2.8以后,都可以在頭部區域添加所有相關的feed鏈接(主體、評論、分類等),不過這并不是默認的,需要添加下面的代碼來運行:

// add feed links to header

if (function_exists(‘automatic_feed_links’)) {

automatic_feed_links();

} else {

return;

}

這段代碼先檢查是否使用可兼容的WordPress版本,然后再啟用自動geed鏈接。幾點注意事項:第一,此方法是假設沒有手動在頭部添加任何feed鏈接。第二,根據最近這個Trac ticket,似乎這個功能與add_theme_support已經整合在一起了。

自動包含jQuery

如何包含 jQuery ? 可以在主題的functions.php文件里添加下面的代碼:

// smart jquery inclusion

if (!is_admin()) {

wp_deregister_script(‘jquery’);

wp_register_script(‘jquery’,

(“http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js”), false);

wp_enqueue_script(‘jquery’);

}

這個代碼可以確保只包含一份jQuery,并從谷歌服務器上訪問它,節省帶寬同時訪問時還有緩存上的優勢。注意,這段代碼必需放在嵌套評論函數的前面才能正常運行。

啟用嵌套評論

一般來說,啟用嵌套評論需要在頭部區域添加一小段代碼到wp_head 標簽的前面。可以在functions.php文件里添加這段代碼:

// enable threaded comments

function enable_threaded_comments(){

if (!is_admin()) {

if (is_singular() AND comments_open() AND (get_option(‘thread_comments’) == 1))

wp_enqueue_script(‘comment-reply’);

}

}

add_action(‘get_header’, ‘enable_threaded_comments’);

這有助于保持

文件的整潔性,注意,這個函數需要放置在jQuery-inclusion函數的后面才能正常運作。

刪除Head區域多余東西

WordPress

文件里含有大量的多余東西, 諸如,版本號、WLW、RSD和索引鏈接。為了清除這些不必要信息,可以在functions.php文件里添加下面的代碼:

// remove junk from head

remove_action(‘wp_head’, ‘rsd_link’);

remove_action(‘wp_head’, ‘wp_generator’);

remove_action(‘wp_head’, ‘feed_links’, 2);

remove_action(‘wp_head’, ‘index_rel_link’);

remove_action(‘wp_head’, ‘wlwmanifest_link’);

remove_action(‘wp_head’, ‘feed_links_extra’, 3);

remove_action(‘wp_head’, ‘start_post_rel_link’, 10, 0);

remove_action(‘wp_head’, ‘parent_post_rel_link’, 10, 0);

remove_action(‘wp_head’, ‘adjacent_posts_rel_link’, 10, 0);

給頁腳添加谷歌分析工具

往functions.php 文件添加了下面的代碼,并從此不用為制作站點時都需要在footer.php文件添加谷歌分析工具的代碼頭疼了。

// add google analytics to footer

function add_google_analytics() {

echo ‘’;

echo ‘

echo ‘var pageTracker = _gat._getTracker(“UA-XXXXX-X”);’;

echo ‘pageTracker._trackPageview();’;

echo ‘’;

}

add_action(‘wp_footer’, ‘add_google_analytics’);

兩點注意事項:第一,用實際的 GA 代碼代替“UA-123456-1” ;第二,也可以查看當前谷歌分析工具的三種選擇并修改相應的代碼。目前,這個函數使用“ga.js”跟蹤代碼,也可以改用其他方法。

自定義摘要的長度

使用下面這個函數就可以給摘要指定任何長度而不用受默認的55字的限制。

// custom excerpt length

function custom_excerpt_length($length) {

return 20;

}

add_filter(‘excerpt_length’, ‘custom_excerpt_length’);

只需要將 “20” 替換為任何你需要的字數。

自定義摘要后 “繼續閱讀”字符串

不管你怎么稱呼這個方括號里的省略號[…]” ,總之這是WordPress默認的緊跟摘要 后面部分,我想刪除方括號,使用下面這段代碼你可以對它進行任何更改:

// custom excerpt ellipses for 2.9+

function custom_excerpt_more($more) {

return ‘…’;

}

add_filter(‘excerpt_more’, ‘custom_excerpt_more’);

/* custom excerpt ellipses for 2.8-

function custom_excerpt_more($excerpt) {

return str_replace(‘[…]‘, ‘…’, $excerpt);

}

add_filter(‘wp_trim_excerpt’, ‘custom_excerpt_more’);

*/

你可能已經注意到這里的代碼有兩個不同版本,看你使用的是WordPress什么版本。當然最好是使用最新版,因此這里注釋了更老版本的方法,不過要是你需要的話也可以使用它。不管是什么版本,使用此方法你僅僅需要用 “…” 或是任何你想要的符號來代替原來的“[…]”,即可。

“read more”?鏈接無法正常跳轉

WordPress里最讓人不可思議的就是當讀者在瀏覽一篇文章的模式下點擊“read more” 鏈接時,頁面就會跳轉到 “” 標簽的位置。如果是跳轉到同一頁面也就無所謂了,但是如果是重新加載一個新的頁面然后讀者發現沒有了下文也沒有任何解釋說哪里出錯了,這就很讓人覺得莫名其妙的。無論如何,這里有個非常漂亮的小函數可以阻止跳轉的發生:

// no more jumping for read more link

function no_more_jumping($post) {

return ‘ID).’”>’.'Continue Reading’.'’;

}

add_filter(‘excerpt_more’, ‘no_more_jumping’);

這段代碼無需其他任何東西就可以運行,從此你就可以不必為“跳轉”費心了。 注意,這也是自定義“read more”鏈接的好方法,你可以在此給它設定各種屬性或定義任何你想要文本。

給博客添加圖標

如果你想給博客添加個圖標,下面的代碼將會非常實用。創建完圖標后只要上傳圖片到網站的根目錄下即可。只要在functions.php文件的

區域添加下面的幾行代碼:

// add a favicon to your

function blog_favicon() {

echo ‘’;

}

add_action(‘wp_head’, ‘blog_favicon’);

你可以隨意更改目錄,同時確保wp_head包含在你的主題 header.php文件里。

給博客后臺添加一個不同的圖標

有必要給WordPress后臺添加一個特別的圖標,這樣被收藏為書簽或是處理標簽時就更加容易認出。只要將圖標上傳到主題的/images/ 目錄下,加上下面的代碼即可:

// add a favicon for your admin

function admin_favicon() {

echo ‘

href=”‘.get_bloginfo(‘stylesheet_directory’).’/images/favicon.png” />’;

}

add_action(‘admin_head’, ‘admin_favicon’);

像前面一樣,同樣可以隨意更改目錄。不過最好將后臺圖標和前臺圖標分開放在不同的目錄下。

自定義后臺登陸圖標

是否想利用WordPress圖標在各個登陸頁面給自己做宣傳?那么,可以將這個WordPress圖標替換為其他自定義圖片,創建自定義登陸圖片,并將其命名為“custom-login-logo.png”將圖片上傳至主題的/images/ 目錄下,用下面的代碼:

// custom admin login logo

function custom_login_logo() {

echo ‘

h1 a { background-image:

url(‘.get_bloginfo(‘template_directory’).’/images/custom-login-logo.png) !important; }

’;

}

add_action(‘login_head’, ‘custom_login_logo’);

這里關鍵是要你設置路徑和圖片名稱一致。另外,在創建圖片的時候,記住圖片的屬性:寬為30px, 高為31px,透明GIF格式,頭部背景色#464646 。

禁用無用的小工具區域

Justin Tadlock介紹了個非常方便的函數,可用于刪除主題中不需要的小工具區域,這是自定義主題必不可少的一個函數:

// disable all widget areas

function disable_all_widgets($sidebars_widgets) {

//if (is_home())

$sidebars_widgets = array(false);

return $sidebars_widgets;

}

add_filter(‘sidebars_widgets’, ‘disable_all_widgets’);

這個代碼屬于即插即用型,不需要任何更改。注意:如果只想在主頁禁用小工具,那么就將第三欄的 “//”刪除。

刪除WordPress更新提示

我比較討厭WordPress更新提示,下面的代碼就可以將管理面板的更新提示刪除:

// kill the admin nag

if (!current_user_can(‘edit_users’)) {

add_action(‘init’, create_function(‘$a’, “remove_action(‘init’, ‘wp_version_check’);”), 2);

add_filter(‘pre_option_update_core’, create_function(‘$a’, “return null;”));

}

如果想要獲得更新通知的話,也可以將這段代碼注釋掉或是刪除掉。

在body_class 與 post_class中加入分類ID

默認情況下,WordPress body_class和 post_class并沒有包含當前文章的分類ID。 不過,可以用下面的代碼來實現:

// category id in body and post class

function category_id_class($classes) {

global $post;

foreach((get_the_category($post->ID)) as $category)

$classes [] = ‘cat-’ . $category->cat_ID . ‘-id’;

return $classes;

}

add_filter(‘post_class’, ‘category_id_class’);

add_filter(‘body_class’, ‘category_id_class’);

即使沒有使用分類ID,這個函數還是非常好使的,這也是為什么我將這個歸入自定義functions.php 模板的必備函數中來。

獲取第一個分類ID

當要處理多個不同分類時,另一個非常實用的函數獲取當前文章的第一個分類。代碼如下:

// get the first category id

function get_first_category_ID() {

$category = get_the_category();

return $category[0]->cat_ID;

}

嚴格的即插即播型: 只要在模板文件使用<?php get_first_category_ID(); ?>來訪問數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443199.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443199.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443199.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java基本數據類型存儲,JAVA - 基本數據類型的存儲空間長度

1.整型類型 存儲需求 bit數 取值范圍 備注byte 1字節 1*8 &#xff0d;128&#xff5e;127short 2字節 2*8 &#xff0d;32768&#xff5e;32767int 4字節 4*8 (-2的31次方到2的31次方-1)long 8字節 8*8 (-2的63次方到2的63次方-1) 長整型數值后綴為LJAVA 沒有無符號類型JAVA中…

matlab回調函數,matlabGUI回調函數介紹.pptx

matlabGUI回調函數介紹GUI開發環境的常用工具與回調函數和GUI程序文件GUI開發常用工具1、控件面板2、對象對齊工具3、對象瀏覽器4、tab順序編輯器5、屬性編輯器6、菜單編輯器7、M文件編輯器回調函數回調函數是控件接收到用戶的操作時調用的特定函數&#xff0c;每個回調函數都是…

余額交易查詢 php,深圳通余額查詢的API

深圳通余額查詢的API&#xff0c;可以通過深圳通號碼查詢到余額及卡有效期等信息。 用到Domxpath和Curl兩方面的知識。 源碼已托管到github&#xff0c;另外要加載個類&#xff1a;myclass 項目地址&#xff1a;https://github.com/skiy/dev 演示&#xff1a;http://api.oupag.…

食餌捕食者模matlab,幾類食餌-捕食者模型的定性分析和數值模擬

摘要&#xff1a;生態問題一直是人們普遍關注的問題,特別是生態問題中的食餌-捕食者模型,則處于舉足輕重的位置。如何更有效的控制、調節生物種群,使之保持良性發展,則具有非常重要的生態意義和應用價值。解決這類問題的主要工具是種群動力學模型,解決的依據是數學的理論和方法…

數組填充php,php數組入門教程之數組填充

本文介紹下&#xff0c;有關php數組之數組填充的一個例子&#xff0c;有需要的朋友參考下。在php編程中&#xff0c;對數組元素進行填充&#xff0c;可以使用array_fill()函數。來看下面的例子&#xff0c;array_fill()函數——填充數組函數&#xff1a;";print_r ($array…

php在類定義一個我靜態變量,php中靜態類與靜態變量用法的區別分析_PHP教程

php中靜態類與靜態變量用法的區別分析static是定義一個靜態對象或靜態變量,關于static 定義的變量或類方法有什么特性我們看完本文章的相關實例后就見分曉了.1. 創建對象$object new Class()&#xff0c;然后使用”->”調用&#xff1a;$object->attribute/function&…

matlab 排序點,matlab如何進行排序?

來自SORT的MATLAB文檔&#xff1a;If A has complex entries r and s,sort orders them according to thefollowing rule: r appears before s insort(A) if either of the followinghold:abs(r) < abs(s)abs(r) abs(s) and angle(r) < angle(s)換言之&#xff0c;具有復…

matlab不同調制方式下性能比較,用不同調制方式實現跳/擴頻混合通信的抗干擾性能...

論文寫作指導&#xff1a;請加QQ229366758摘要&#xff1a;介紹了BPSK&#xff0c;QPSK&#xff0c;16PSK&#xff0c;FSK&#xff0c;MSK及GMSK 6種數字調制方式的特點&#xff0c;采用Matlab中的Simulink建立了各種調制方式實現DS/FH混合擴頻系統的仿真模型。重點研究了跳/擴…

matlab cd參數,MATLAB變量參數列表?

默認值default value對于用戶沒有傳遞參數值時給函數進行自動賦給該參數的值?比如上述的例子中&#xff0c;阻尼系數&#xff0c;用戶通常不清楚&#xff0c;可以由系統給出更為合適。怎么做到呢&#xff1f;?可以結合MATLAB的一個函數nargin&#xff0c;它能給出函數輸入參數…

java 旋轉方向,Java 2d方向鼠標點旋轉

使用Graphics2D旋轉方法確實是最簡單的方法.這是一個簡單的實現&#xff1a;int centerX width / 2;int centerY height / 2;double angle Math.atan2(centerY - mouseY, centerX - mouseX) - Math.PI / 2;((Graphics2D)g).rotate(angle, centerX, centerY);g.fillRect(...)…

基于matlab 的燃油噴霧圖像處理方法,基于MATLAB的燃油噴霧圖像處理方法.doc

基于MATLAB的燃油噴霧圖像處理方法基于MATLAB的燃油噴霧圖像處理方法摘要:提出了基于MATLAB的燃油噴霧圖像處理方法。通過對噴霧圖像的采集, 分割和濾波處理, 將多幅圖像轉換融合為一幅比較清楚的二值圖像, 對拍攝的噴霧圖像進行了去噪及二值化等初步處理, 并提取其輪廓圖, 求取…

matlab聲音信號時域頻域轉換,關于處理用采集卡采集到的聲音時域信號轉化成頻域信號........

求助各位大神&#xff0c;我用麥克風通過采集卡采集到了一段聲音數據&#xff0c;數據在附件里&#xff0c;矩陣中第一列為時間&#xff0c;第二列為采集到的聲音的電壓信號&#xff0c;采樣頻率為1萬Hz&#xff0c;做出時域圖和頻域圖的程序如下所示&#xff1a;clear;clc;loa…

win7和mysql亂碼,windows本地mysql數據庫存入中文亂碼

windows本地mysql數據庫存入中文亂碼作者:PHPYuan 時間:2018-07-23 03:41:20出現的問題&#xff1a; 我這頁面存中文到數據庫會亂碼 我打了斷點 中文是傳到后臺dao層的 然后我試了下 把我本地項目連服務器數據庫 保存不會亂碼 我就懷疑是本地數據庫有問題 然后我用navicat寫了個…

畢業設計matlab在誤差處理中的應用,畢業設計MATLAB在誤差處理中的應用要點分析.doc...

畢業論文任務書院(系) 機械工程學院 專業班級 測控082級 學生姓名 馬 魁一、畢業論文題目 MATLAB在誤差理論中的應用二、畢業論文工作自______ ___年____ _月___ __日 起至____ _____年 月_____日止三、畢業論文進行地點: 陜西理工學院四、畢業論文內容要求&#xff1a;傳統的數…

帝國cms 未審核 showinfo.php,帝國CMS批量修改文章未審核狀態及批量修改上線時間...

帝國CMS批量修改審核文章未審核狀態&#xff0c;批量自定義指定文件上線時間&#xff01;用法&#xff1a;后臺增加自定義頁面 PHP CODE:$infouptimeto_time(2016-06-12 10:50:19); //上線時間$sql$empire->query("select * from {$dbtbpre}ecms_".$class_r[2][…

php 完美防sql注入,PHP 完美的防XSS 防SQL注入的代碼

PHP "完美"的防XSS 防SQL注入的代碼function gjj($str){$farr array("/s/","/]*?)>/isU","/(]*)on[a-zA-Z]s*([^>]*>)/isU",);$str preg_replace($farr,"",$str);return addslashes($str);}function hg_input_b…

oracle 并行執行 殺掉會話,oracle – 為什么即使我禁用并行DML和并行DDL也會創建并行會話...

READ和WRITE并行性并不總是捆綁在一起.alter session disable parallel dml;僅禁用語句的WRITE部分的并行性. READ部分可能仍然并行運行.由于這是MERGE操作,因此并行提示請求讀寫并行寫入.此外,并行提示覆蓋alter session disable parallel query;,即使它不覆蓋alter session d…

oracle臨時表空間占用率過高,ORACLE 臨時表空間使用率過高的原因及臨時解決方案...

數據庫temp臨時表空間增大&#xff0c;一般在數據安裝時設置臨時表空間大小&#xff0c;默認的情況下都是設置為自動增長。這樣會引起一個問題&#xff1a;在數據庫使用中temp表空間會自動擴展的越來越大&#xff0c;造成磁盤空間使用不足。引起臨時表空間增大主要使用在以下幾…

oracle11g中的join,sql - 使用Oracle 11g中的+符號進行左外連接

()相當于()。在Oracle中&#xff0c;()表示JOIN中的“可選”表。 所以在你的第一個查詢中&#xff0c;它是一個().在你的第二個查詢中&#xff0c;它是()。它們在功能上是等價的。在術語中&#xff0c;RIGHT或LEFT指定連接的哪一側始終具有記錄&#xff0c;而另一側可能為空。 …

oracle中order by 2,關于oracle中ROWNUM和ORDER BY的問題(2)

SQL code16:29:53 scottTUNGKONG> SELECT a.*,rownum FROM (SELECT good_id, good_nm, prc FROM tb_ag001 ORDER BY prc) a;GOOD_I GOOD_NM PRC ROWNUM------ ------------------------------ ---------- ----------133337 陽光寶貝防曬修復套SPF-30 0 1133424 旋覆透白繡花…