不管是WordPress经典主题还是WordPress块主题,functions.php 文件都是非常重要的。
functions.php文件用来为WordPress主题添加功能与特性。它可以用来连接WordPress的核心功能,使主题更加模块化、可扩展。
functions.php的表现和WordPress插件的表现极为相像,如果判断是将一个功能放到 functions.php 还是单独作为一个插件呢?
判断标准就是:这个功能是否与外观(样式、布局等)相关。如果与外观无关,最佳实践是作为一个插件提供。
在使用别人开发的主题时,可以随时在 functions.php 中添加功能代码。但是更好的方法是在子主题的 functions.php 中添加。这样做的好处是,别人的主题更新时,可随之更新,而不用担心自己添加的功能会随着更新而消失。
如果插件、父主题、子主题都提供的功能有冲突,那么会优先使用子主题的代码。也就是说加载顺序是:插件、然后是父主题、最后是子主题。
另一种更常见的冲突是:函数(类)命名冲突。
为了避免函数(类)命名冲突,最好的办法就是为自己的函数(类)加上前缀。比如你的主题名字叫:ZhuiGe,那么所有函数的名字都应该类似于:zhuige_function_name,所有的类都应该类似于:ZhuiGe_Class_Name。此外,最好再加上 function_exists\class_exists 判断。
// 如果函数不存在,再定义函数
if (!function_exists('zhuige_function_name')) {
function zhuige_function_name() {
// ……
}
}
// 如果类不存在,再定义类
if (!class_exists('ZHuiGe_Class_Name')) {
class ZHuiGe_Class_Name {
// ……
}
}
最后是一个functions.php的示例:
if (!isset($content_width)) {
$content_width = 800; /* pixels */
}
if (!function_exists('myfirsttheme_setup')) :
function myfirsttheme_setup()
{
load_theme_textdomain('myfirsttheme', get_template_directory() . '/languages');
add_theme_support('automatic-feed-links');
add_theme_support('post-thumbnails');
register_nav_menus(array(
'primary' => __('Primary Menu', 'myfirsttheme'),
'secondary' => __('Secondary Menu', 'myfirsttheme'),
));
add_theme_support('post-formats', array('aside', 'gallery', 'quote', 'image', 'video'));
}
endif; // myfirsttheme_setup
add_action('after_setup_theme', 'myfirsttheme_setup');
-
WordPress函数:_n_loop 在 pot 文件中注册字符串WordPress函数:_n_loop 在 pot 文件中注册字符串
-
WordPress函数:esc_html__ 转义HTML字符WordPress函数:esc_html__ 转义HTML字符
-
WordPress函数:esc_html_x 带上下文的转义翻译WordPress函数:esc_html_x 带上下文的转义翻译
-
WordPress函数:esc_attr__ 转义属性及翻译WordPress函数:esc_attr__ 转义属性及翻译
-
WP Multilang WordPress翻译插件WP Multilang插件的主要功能是提供多语言支持,使用户能够创建多语言版本的网站,满足不同语言用户的需求。
-
WordPress公司官网主题在众多的WordPress企业官网主题中,追格公司推出了多款关于WordPress企业官网主题作品。我们之前已经分享过一些关于追格的企业官网主题,包括收费和免费版本,这些主题都因其独特的设计和出色的功能而深受用户喜爱。
暂无评论,抢个沙发...