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.mzph.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 旋覆透白绣花…