wordpress函数手册_WordPress主题开发手册
functions.php文件是您為 WordPress 主題添加功能的唯一位置。您可以在其中把自定義功能掛載到 WordPress 的核心功能上,使您的主題更加模塊化、更具擴展性、功能更加豐富。
什么是functions.php?
functions.php文件的行為類似于 WordPress 插件,為 WordPress 網站添加一些特性和功能。您可以使用它來調用 WordPress 函數或定義自己的函數。
使用插件或functions.php可以產生相同的結果。如果我們正在為主題創建新功能,無論網站是什么樣的,?最好將它們放在插件中。
使用 WordPress 插件或 functions.php 各有利弊:
使用 WordPress 插件:
需要特定的,唯一的標題文本;
存儲在 wp-content/plugins 中
僅在激活時執行;
適用于所有主題
應該有一個特定目的 – 例如,提供搜索引擎優化功能或幫助備份。
使用?functions.php文件:
不需要唯一的標題文本;
存儲在 wp-content/themes 中的主題子目錄中;
僅在主題激活時執行;
僅適用于該主題(如果主題更改,則無法再使用這些功能)
可以有許多代碼塊,實現各種功能
每個主題都有自己的函數文件,但只有在激活主題的functions.php文件中的代碼會被直接執行。如果您的主題已有 function.php 文件,我們可以添加代碼到這個文件中。如果沒有,我們需要先創建這個文件。
子主題可以擁有自己的?functions.php文件。向子主題的函數文件添加函數是修改父主題的無風險方法。當更新父主題時,您不必擔心添加的新功能會消失。
雖然子主題的?functions.php在父主題的?functions.php之前加載,但它不會覆蓋父主題的文件。子主題?functions.php可用于擴充或替換父主題的功能。同時,?functions.php在加載任何插件文件后加載。
在?functions.php中,您可以:
使用 WordPress 鉤子。例如,使用?excerpt_length過濾器,您可以更改文章摘錄長度(默認為55個單詞)。
使用?add_theme_support()?函數啟用 WordPress 功能?。例如,啟用縮略圖,文章格式和導航菜單。
定義需要在主題的其他模板文件中重用的函數。
如果在 WordPress 插件和主題的 functions.php 中調用相同的函數或 filter,可能會產生意外的結果,極端情況下甚至會導致我們的網站無法訪問。
示例
下面是一些示例,您可以在 functions.php 文件中使用這些示例來支持各種功能。如果您選擇將其提交到 WordPress.org 主題目錄,您可以在自己的主題中使用這些示例中的任意一個。
主題設置
許多主題功能應包含在“設置”功能中,該功能在激活主題時運行。如下所示,您可以將這些函數添加到自己主題的?functions.php文件中,以激活推薦的WordPress 功能。
使用主題名稱為函數名加一個前綴非常重要。以下所有示例都?myfirsttheme_用作命名空間,您可以根據自己的主題名稱進行定義。
要創建此初始函數,您需要新建一個名為 myfirsttheme_setup() 的函數?,如下所示:
if ( ! function_exists( 'myfirsttheme_setup' ) ) :
/**
* 設置主題默認值,并注冊一些 WordPress 功能
* 在 init 鉤子之前設置這些函數非常重要,以確保這些功能不會失效
* @since MyFirstTheme 1.0
*/
function myfirsttheme_setup() {
注意:在上面的示例中,函數 myfirsttheme_setup 已打開但未關閉。一定要關閉我們的函數
自動 Feed 鏈接
您可以使用?add_theme_support()?函數為主題添加 automatic-feed-links 功能支持,默認情況下,該功能可以發布文章和評論 RSS Feed。這些 Feed 將在
自動顯示?。add_theme_support( 'automatic-feed-links' );
導航菜單
自定義導航菜單可以讓用戶在菜單管理面板中編輯和自定義菜單,為用戶提供拖放界面來編輯主題中的各種菜單。
您可以使用?register_nav_menus()?函數在 ?functions.php?中設置多個菜單?。并使用?wp_nav_menu()?將它添加插入到主題中?,如果您主題允許多個菜單,可以使用數組。雖然某些主題沒有自定義導航菜單,但建議啟用此功能以一變用戶可以輕松的管理網站菜單。
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'myfirsttheme' ),
'secondary' => __( 'Secondary Menu', 'myfirsttheme' )
) );
您定義的每個菜單都可以使用?wp_nav_menu()?調用,調用菜單式,指定菜單名稱名稱(如:primary)為該函數的?theme_location?參數值即可。
加載文本域
通過使主題中的字符串可翻譯,主題可以被翻譯成多種語言。為此,您必須使用load_theme_textdomain()?函數來設置翻譯文件。有關使主題可用于翻譯的更多信息,請閱讀國際化部分。
load_theme_textdomain( 'myfirsttheme', get_template_directory() . '/languages' );
文章縮略圖
文章縮略圖和特色圖片可讓用戶選擇一個圖像來代表他們的文章。您可以根據主題設計來決定如何顯示它們。例如,您可以選擇在存檔頁面中顯示每個文章的文章縮略圖。或者,您可能希望在主頁上使用大幅特色圖像。雖然并非每個主題都需要特色圖片,但建議為主題添加縮略圖支持。
add_theme_support( 'post-thumbnails' );
文章格式
文章格式允許用戶以不同的方式格式化他們的帖子。這對于允許網站管理員根據文章內容選擇不同的格式和模板很有用。?add_theme_support()也可以用來啟用文章格式。
add_theme_support( 'post-formats', array ( 'aside', 'gallery', 'quote', 'image', 'video' ) );
初始設置示例
我們在這里為您整理了包含上面所有功能的 functions.php 代碼,如下所示。已添加代碼注釋,以供將來使用。
如本示例代碼底部所示,必須添加 add_action() 語句才可以確保已加載 myfirsttheme_setup 函數。
if ( ! function_exists( 'myfirsttheme_setup' ) ) :
/**
* 設置主題默認值并注冊對各種WordPress功能的支持。
*
* 請注意,此函數已掛接到after_setup_theme掛鉤中,該掛鉤在init掛鉤之前運行。
* 對于某些功能(例如指示支持帖子縮略圖),init掛鉤為時已晚。
*/
function myfirsttheme_setup() {
/**
* 使主題可用于翻譯。
* 可以將翻譯放在/ languages /目錄中。
*/
load_theme_textdomain( 'myfirsttheme', get_template_directory() . '/languages' );
/**
* 將默認文章和評論RSS feed鏈接添加到
。*/
add_theme_support( 'automatic-feed-links' );
/**
* 啟用對文章縮略圖和特色圖片的支持。
*/
add_theme_support( 'post-thumbnails' );
/**
* 添加對兩個自定義導航菜單的支持。
*/
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'myfirsttheme' ),
'secondary' => __('Secondary Menu', 'myfirsttheme' )
) );
/**
* 啟用對以下文章格式的支持:
* aside, gallery, quote, image, and video
*/
add_theme_support( 'post-formats', array ( 'aside', 'gallery', 'quote', 'image', 'video' ) );
}
endif; // myfirsttheme_setup
add_action( 'after_setup_theme', 'myfirsttheme_setup' );
內容寬度
您可以添加一個內容寬度變量到functions.php文件中,以確保網站內容或文件不會破壞網站布局。內容寬度設置了允許添加到您網站的任何內容的最大允許寬度,包括上傳的圖片。在下面的示例中,內容區域的最大寬度為 800 像素。網站上顯示的內容不會超過這個寬度。
if ( ! isset ( $content_width) )
$content_width = 800;
其他功能
您還可以在functions.php?中包含其他常見功能?。下面是一些最常見。
側邊欄?(小工具區域)
自定義背景
添加編輯器樣式
HTML5
標題標簽
您的?functions.php?文件
如果您包含上面列出的所有函數,下面的代碼這就是您主題的?functions.php代碼。
/**
* MyFirstTheme 主題功能和定義
*
* @package MyFirstTheme
* @since MyFirstTheme 1.0
*/
/**
* 首先,設置最大寬度,這將限制上傳的文件大小和嵌入內容的寬度
*/
if ( ! isset( $content_width ) )
$content_width = 800; /* 像素 */
if ( ! function_exists( 'myfirsttheme_setup' ) ) :
/**
* 設置主題默認值并注冊對各種WordPress功能的支持。
*
* 請注意,此函數已掛接到after_setup_theme掛鉤中,該掛鉤在init掛鉤之前運行。
* 對于某些功能(例如指示支持文章縮略圖),init掛鉤為時已晚。
*/
function myfirsttheme_setup() {
/**
* 使主題可用于翻譯。
* 可以將翻譯放在/ languages /目錄中。
*/
load_theme_textdomain( 'myfirsttheme', get_template_directory() . '/languages' );
/**
* 將默認文章和評論RSS feed鏈接添加到
。*/
add_theme_support( 'automatic-feed-links' );
/**
* 啟用對文章縮略圖和特色圖片的支持。
*/
add_theme_support( 'post-thumbnails' );
/**
* 添加對兩個自定義導航菜單的支持。
*/
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'myfirsttheme' ),
'secondary' => __('Secondary Menu', 'myfirsttheme' )
) );
/**
* 啟用對以下文章格式的支持:
* aside, gallery, quote, image, and video
*/
add_theme_support( 'post-formats', array ( 'aside', 'gallery', 'quote', 'image', 'video' ) );
}
endif; // myfirsttheme_setup
add_action( 'after_setup_theme', 'myfirsttheme_setup' );
這篇文章對您有用嗎?
總結
以上是生活随笔為你收集整理的wordpress函数手册_WordPress主题开发手册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java技术:干掉 XML配置文件,新出
- 下一篇: 教你定时爬取微博热搜榜并做动态数据展示,