设置图片

秦宏瑾 发表了文章 • 0 个评论 • 604 次浏览 • 2018-09-18 08:53 • 来自相关话题

因为我们自销的皮肤 需要导出成模板,所以有些图片设置需要禁止这样设置,否则图片导出不成功
Single Image





 
列设置
 





 
 
 
 
上面的设置都是导出 图片ID, 而模板里面是没有这些图片ID,所以会导致看不到图片 查看全部
因为我们自销的皮肤 需要导出成模板,所以有些图片设置需要禁止这样设置,否则图片导出不成功
Single Image

img_1.png

 
列设置
 

img__2.png

 
 
 
 
上面的设置都是导出 图片ID, 而模板里面是没有这些图片ID,所以会导致看不到图片

wordpress作者的相关函数调用代码

痞子再 发表了文章 • 1 个评论 • 654 次浏览 • 2017-06-21 10:59 • 来自相关话题

<?php the_author(); ?> 显示文章的作者
<?php the_author_description(); ?> 显示文章作者的描述(作者个人资料中的描述)
<?php the_author_login(); ?> 显示文章作者的登录名
<?php the_author_firstname(); ?> 显示文章作者的firstname(名)
<?php the_author_lastname(); ?> 显示文章作者的lastname(姓)
<?php the_author_nickname(); ?> 显示文章作者的昵称
<?php the_author_ID(); ?> 显示文章作者的ID号
<?php the_author_email(); ?> 显示文章作者的电子邮箱
<?php the_author_url(); ?> 显示文章作者的网站地址
<?php the_author_link (); ?>(添加于2.1版本) 显示一个以文章作者名为链接名,链接地址为文章作者的网址的链接。
<?php the_author_icq(); ?> (不推荐使用) 显示文章作者的icq
<?php the_author_aim(); ?> 显示文章作者的aim
<?php the_author_yim(); ?> 显示文章作者的yim
<?php the_author_msn(); ?> (不推荐使用) 显示文章作者的msn
<?php the_author_posts(); ?> 显示文章作者已发表文章的篇数
<?php the_author_posts_link(); ?> 显示一个链接到文章作者已发表文章列表的链接

<?php list_authors(); ?> (不推荐使用) 显示blog所有作者和他们的相关信息。完整函数如下:
参数:
optioncount:是否显示各作者已发表文章的篇数,可选值为:TRUE 和 FALSE(默认值)
exclude_admin:是否不列出管理员,可选值为:TRUE(默认值) 和 FALSE
show_fullname :是否显示各作者的全名,可选值为:TRUE 和 FALSE(默认值)
hide_empty:是否不显示发表文章数为0的作者,可选值为:TRUE(默认值) 和 FALSE
feed:链接到各个作者发表文章的RSS供稿种子链接名,默认为空,不显示RSS供稿种子
feed_image:供稿种子的图片地址,如果提供此项,则覆盖上面的feed,默认为空


<?php wp_list_authors(); ?> 显示blog作者列表,如果作者发表过文章,则他的名字将链接到他发表的文章列表中。可定义是否显示其他信息。
参数:
optioncount:是否显示各个作者发表文章数,可选值:true 和 false(默认值)
exclude_admin:是否不显示”admin”用户,可选值:true(默认值) 和 false
show_fullname:是否显示各个作者的全名,如果不显示,将显示昵称。可选值:true 和 false(默认值)
hide_empty:是否不显示发表文章数为0的作者,可选值:true(默认值) 和 false
feed:链接到各个作者发表文章的RSS供稿种子链接名,默认为空,不显示RSS供稿种子
feed_image:供稿种子的图片地址,如果提供此项,则覆盖上面的feed,默认为空。 查看全部
<?php the_author(); ?> 显示文章的作者
<?php the_author_description(); ?> 显示文章作者的描述(作者个人资料中的描述)
<?php the_author_login(); ?> 显示文章作者的登录名
<?php the_author_firstname(); ?> 显示文章作者的firstname(名)
<?php the_author_lastname(); ?> 显示文章作者的lastname(姓)
<?php the_author_nickname(); ?> 显示文章作者的昵称
<?php the_author_ID(); ?> 显示文章作者的ID号
<?php the_author_email(); ?> 显示文章作者的电子邮箱
<?php the_author_url(); ?> 显示文章作者的网站地址
<?php the_author_link (); ?>(添加于2.1版本) 显示一个以文章作者名为链接名,链接地址为文章作者的网址的链接。
<?php the_author_icq(); ?> (不推荐使用) 显示文章作者的icq
<?php the_author_aim(); ?> 显示文章作者的aim
<?php the_author_yim(); ?> 显示文章作者的yim
<?php the_author_msn(); ?> (不推荐使用) 显示文章作者的msn
<?php the_author_posts(); ?> 显示文章作者已发表文章的篇数
<?php the_author_posts_link(); ?> 显示一个链接到文章作者已发表文章列表的链接

<?php list_authors(); ?> (不推荐使用) 显示blog所有作者和他们的相关信息。完整函数如下:
参数:
optioncount:是否显示各作者已发表文章的篇数,可选值为:TRUE 和 FALSE(默认值)
exclude_admin:是否不列出管理员,可选值为:TRUE(默认值) 和 FALSE
show_fullname :是否显示各作者的全名,可选值为:TRUE 和 FALSE(默认值)
hide_empty:是否不显示发表文章数为0的作者,可选值为:TRUE(默认值) 和 FALSE
feed:链接到各个作者发表文章的RSS供稿种子链接名,默认为空,不显示RSS供稿种子
feed_image:供稿种子的图片地址,如果提供此项,则覆盖上面的feed,默认为空


<?php wp_list_authors(); ?> 显示blog作者列表,如果作者发表过文章,则他的名字将链接到他发表的文章列表中。可定义是否显示其他信息。
参数:
optioncount:是否显示各个作者发表文章数,可选值:true 和 false(默认值)
exclude_admin:是否不显示”admin”用户,可选值:true(默认值) 和 false
show_fullname:是否显示各个作者的全名,如果不显示,将显示昵称。可选值:true 和 false(默认值)
hide_empty:是否不显示发表文章数为0的作者,可选值:true(默认值) 和 false
feed:链接到各个作者发表文章的RSS供稿种子链接名,默认为空,不显示RSS供稿种子
feed_image:供稿种子的图片地址,如果提供此项,则覆盖上面的feed,默认为空。

WordPress the_time函数时间格式汇总

痞子再 发表了文章 • 0 个评论 • 892 次浏览 • 2017-06-21 10:01 • 来自相关话题

WordPress中输出日期、时间可以用:<?php the_time('Y年m月d日 H:i'); ?>。

让我一起看一下WordPress函数the_time()里面参数的具体含义。

日期(年-月-日)的含义:

<?php the_time('Y-m-j'); ?> 输出:2007-02-6

<?php the_time('y-n-j');  ?> 输出:07-2-6

大写Y表示年四位数字,而小写y表示年的两位数字;

小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。

<?php the_time('Y-M-j');  ?> 输出:2007-Feb-6

<?php the_time('Y-m-d');  ?> 输出:2007-02-06

大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);

没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。

<?php the_time('Y-F-jS'); ?> 输出:2007-February-6th

大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)

大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。

小结:

表示年可以用大写的Y和小写y;

表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);

表示日可以用小写d和小写j,大写S表示日期的后缀。

下面主要说一下时间的参数的含义(时:分:秒):

默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。

<?php the_time('g:i:s a'); ?> 输出:5:56:57 am

<?php the_time('h:i:s A'); ?> 输出:05:56:57 AM

小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。

当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。

<?php the_time('G:i:s'); ?> 输出:8:02:26

<?php the_time('H:i:s'); ?> 输出:08:02:26

大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数 查看全部
WordPress中输出日期、时间可以用:<?php the_time('Y年m月d日 H:i'); ?>。

让我一起看一下WordPress函数the_time()里面参数的具体含义。

日期(年-月-日)的含义:

<?php the_time('Y-m-j'); ?> 输出:2007-02-6

<?php the_time('y-n-j');  ?> 输出:07-2-6

大写Y表示年四位数字,而小写y表示年的两位数字;

小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。

<?php the_time('Y-M-j');  ?> 输出:2007-Feb-6

<?php the_time('Y-m-d');  ?> 输出:2007-02-06

大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);

没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。

<?php the_time('Y-F-jS'); ?> 输出:2007-February-6th

大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)

大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。

小结:

表示年可以用大写的Y和小写y;

表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);

表示日可以用小写d和小写j,大写S表示日期的后缀。

下面主要说一下时间的参数的含义(时:分:秒):

默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。

<?php the_time('g:i:s a'); ?> 输出:5:56:57 am

<?php the_time('h:i:s A'); ?> 输出:05:56:57 AM

小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。

当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。

<?php the_time('G:i:s'); ?> 输出:8:02:26

<?php the_time('H:i:s'); ?> 输出:08:02:26

大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数

WP 语言本地化操作详解

痞子再 发表了文章 • 0 个评论 • 540 次浏览 • 2017-03-16 11:24 • 来自相关话题

由于wp在世界范围内有很多的国家使用,如同我们制作DNN的模块一样,是需要支持多语言。
 
这里我们就来讲讲如何实现WP的语言。
 
1. 首先我们需要在主题中插入语言支持的标签$(document).ready(function() {$('pre code').each(function(i, block) { hljs.highlightBlock( block); }); });add_action('after_setup_theme', 'my_theme_setup');
function my_theme_setup(){
load_theme_textdomain('dng-theme', get_template_directory() . '/languages');
}这段代码的意思是定义了主题的 文字域 和 语言文件的路径,方便wp去引用。
 
2. 我们需要用 Poedit 这个工具制作语言文件并翻译成多语言
  下载地址:  \\192.168.0.222\公开共享\04.网页制作软件\\Poedit-1.8.6-wp语言工具.exe
 
3. 我们在制作语言文件时需要以英语en为蓝本,其他语言均需要在此基础上进行翻译。文件名中前缀是语言、后缀为国家简写,如 zh-CN.po
 
4. 翻译的文件分为mo/po文件,po 和 mo 的最直接的区别在于:po文件是给人看的,也是可以直接通过 POEdit 编辑的,mo 文件则是给服务器识别的,是用来显示翻译内容所必需的。也就是说,你的主题语言目录中,可以没有po文件,但是必须有mo文件,否则服务器就没办法加载翻译!
 
5. 我们在wp中可以用 __("文字内容","dnngo-theme") 这种形式取数据,另外还有 _e()、_x、_ex 和 _n 等几种用法。
__()    返回当前语言的字符串内容
_e()    返回当前语言的字符串内容,并打印 如同加了echo
其他一些不常用到的方法如_x、_ex 和 _n可以参考下面的网址了解。
https://www.wpdaxue.com/differ ... .html  
 
6. 我们在制作主题时需要将所有文字标签都用到翻译函数,这样使用Poedit时才可以自动翻译。
 
  查看全部
由于wp在世界范围内有很多的国家使用,如同我们制作DNN的模块一样,是需要支持多语言。
 
这里我们就来讲讲如何实现WP的语言。
 
1. 首先我们需要在主题中插入语言支持的标签
add_action('after_setup_theme', 'my_theme_setup');
function my_theme_setup(){
load_theme_textdomain('dng-theme', get_template_directory() . '/languages');
}
这段代码的意思是定义了主题的 文字域 和 语言文件的路径,方便wp去引用。
 
2. 我们需要用 Poedit 这个工具制作语言文件并翻译成多语言
  下载地址:  \\192.168.0.222\公开共享\04.网页制作软件\\Poedit-1.8.6-wp语言工具.exe
 
3. 我们在制作语言文件时需要以英语en为蓝本,其他语言均需要在此基础上进行翻译。文件名中前缀是语言、后缀为国家简写,如 zh-CN.po
 
4. 翻译的文件分为mo/po文件,po 和 mo 的最直接的区别在于:po文件是给人看的,也是可以直接通过 POEdit 编辑的,mo 文件则是给服务器识别的,是用来显示翻译内容所必需的。也就是说,你的主题语言目录中,可以没有po文件,但是必须有mo文件,否则服务器就没办法加载翻译!
 
5. 我们在wp中可以用 __("文字内容","dnngo-theme") 这种形式取数据,另外还有 _e()、_x、_ex 和 _n 等几种用法。
__()    返回当前语言的字符串内容
_e()    返回当前语言的字符串内容,并打印 如同加了echo
其他一些不常用到的方法如_x、_ex 和 _n可以参考下面的网址了解。
https://www.wpdaxue.com/differ ... .html  
 
6. 我们在制作主题时需要将所有文字标签都用到翻译函数,这样使用Poedit时才可以自动翻译。
 
 

WordPress实现分页Ajax无限加载功能:jquery.ias.js

痞子再 发表了文章 • 0 个评论 • 1181 次浏览 • 2017-03-09 09:37 • 来自相关话题

前言

今天在为自己模版添加上ajax无限加载功能,在谷歌和github找了好一阵子,才找到合适的ajax翻页功能。

Infinite AJAX Scroll通过很简单的设置,就可以让Wordpress支持分页Ajax无线加载功能。

教程

下面以Wordpress本博客主题 JaneCC-Silver 主题为例:

下载 jquery.ias.min.js
把  jquery.ias.min.js  拷贝到  wp-content/themes/Silver/js  文件夹下
在编辑器中打开  wp-content/themes/Silver/header.php
为主题添加 jQuery。把下面的代码粘贴到 之前(如果主题已引入jQuery,可跳过此步):
<script type="text/javascript" src="http://libs.baidu.com/jquery/1 ... gt%3B把下面的代码放在上一步引入的 jQuery 之后, 之前:dd<script src="<?php echo get_template_directory_uri(); ?>/js/jquery.ias.min.js" type="text/javascript"></script>最后,把下面的代码贴在 之前(有些属性需要改为你主题中的):var ias = $.ias({
container: ".content", //包含所有文章的元素
item: ".article", //文章元素
pagination: ".page_navi", //分页元素
next: ".page_navi a:eq(-2)", //下一页元素
});

ias.extension(new IASTriggerExtension({
text: 'Load more items', //此选项为需要点击时的文字
offset: 2, //设置此项后,到 offset+1 页之后需要手动点击才能加载,取消此项则一直为无限加载
}));
ias.extension(new IASSpinnerExtension());
ias.extension(new IASNoneLeftExtension({
text: 'You reached the end.', // 加载完成时的提示
}));PS:

如果主题启用了Lazyload插件,在第二页开始之后的页面图片会加载不出来,需要加入下面的代码才行:ias.on('rendered', function(items) {
$("img.lazy").lazyload({effect:"fadeIn"}); //这里是你调用Lazyload的代码
}) 查看全部

前言

今天在为自己模版添加上ajax无限加载功能,在谷歌和github找了好一阵子,才找到合适的ajax翻页功能。

Infinite AJAX Scroll通过很简单的设置,就可以让Wordpress支持分页Ajax无线加载功能。

教程

下面以Wordpress本博客主题 JaneCC-Silver 主题为例:

下载 jquery.ias.min.js
把  jquery.ias.min.js  拷贝到  wp-content/themes/Silver/js  文件夹下
在编辑器中打开  wp-content/themes/Silver/header.php
为主题添加 jQuery。把下面的代码粘贴到 之前(如果主题已引入jQuery,可跳过此步):
<script type="text/javascript" src="http://libs.baidu.com/jquery/1 ... gt%3B
把下面的代码放在上一步引入的 jQuery 之后, 之前:
dd<script src="<?php echo get_template_directory_uri(); ?>/js/jquery.ias.min.js" type="text/javascript"></script>
最后,把下面的代码贴在 之前(有些属性需要改为你主题中的):
var ias = $.ias({
container: ".content", //包含所有文章的元素
item: ".article", //文章元素
pagination: ".page_navi", //分页元素
next: ".page_navi a:eq(-2)", //下一页元素
});

ias.extension(new IASTriggerExtension({
text: 'Load more items', //此选项为需要点击时的文字
offset: 2, //设置此项后,到 offset+1 页之后需要手动点击才能加载,取消此项则一直为无限加载
}));
ias.extension(new IASSpinnerExtension());
ias.extension(new IASNoneLeftExtension({
text: 'You reached the end.', // 加载完成时的提示
}));
PS:

如果主题启用了Lazyload插件,在第二页开始之后的页面图片会加载不出来,需要加入下面的代码才行:
ias.on('rendered', function(items) {
$("img.lazy").lazyload({effect:"fadeIn"}); //这里是你调用Lazyload的代码
})

wordpress 后台引用js和css的方法

痞子再 发表了文章 • 0 个评论 • 3466 次浏览 • 2017-03-06 14:21 • 来自相关话题

WordPress 本身以及主题和插件通常需要加载一些 JavaScript 来实现某些特殊功能。为了最大限度地保证兼容性,不至于出现 JavaScript 失效的情况,所以一般在页头加载 JavaScript 文件。

但是我们一般不建议直接去修改主题的 header.php,或者添加代码到 wp_head() 或 wp_footer() 钩子上,而是要使用 WordPress 官方文档建议使用的 WP 内建的wp_enqueue_script() 和 wp_enqueue_style() 等函数进行操作。
 
 
函数:wp_enqueue_script()

函数用法:

<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>

参数解释:

$handle:用于区别 JS 名称,即标识字串 (string);
$src:JS 的文件 URL (string);
$deps:加载的 JS 所依存的其他 JS 标识字串数组 (array:string, 非必需);
$ver:JS 的版本号,留空则使用当前 WP 版本号 (string, 非必需);
$in_footer:是否放置到网页 HTML 底部加载 (boolean, 非必需)。

函数:wp_enqueue_style()

函数用法:

<?php wp_enqueue_style( $handle, $src, $deps, $ver, $media ); ?>

参数解释:

$handle:用于区别 CSS 的名称,即标识字串 (string);
$src:CSS 的文件 URL (string);
$deps:加载的 CSS 所依存的其他 CSS 标识字串数组 (array:string, 非必需);
$ver:CSS 文件的版本号,留空则使用当前 WP 版本号 (string, 非必需);
$media:用于加载 CSS 的头部标签 link 的 media 参数值 (string, 非必需)。

示例:

<?php
function my_enqueue_scripts() {
if( !is_admin ) { // 前台加载的脚本与样式表
// 去除已注册的 jquery 脚本
wp_deregister_script( 'jquery' );
// 注册 jquery 脚本
wp_register_script( 'jquery', get_template_directory_uri() . '/js/jquery.js', false, '1.0', false );
// 提交加载 jquery 脚本
wp_enqueue_script( 'jquery' );
}
}
// 添加回调函数到 init 动作上
add_action( 'init', 'my_enqueue_scripts' );
?>

在以往我们制作 WP 主题的时候,当引入 JS 文件或 CSS 文件时,通常是直接编辑 header.php 文件,然后将相应的页面头部 HTML 代码添加进去。或者利用 wp_head() 函数钩子插入 HTML 代码。

遇到一个插件或主题功能比较多的 WordPres 网站时,如果仍使用自行插入代码的方式引入 JS / CSS,将可能导致 JS 的重载和 CSS 的重定义或覆盖的后果。而使用 wp_enqueue_script() 和wp_enqueue_style() 等函数操作头部引用,将输出 HTML 语句的工作交给 WP 内核去完成(几乎所有插件都这么做),不仅能够避免重复加载的现象出现,也可实现按 PHP 脚本顺序,任意修改、覆盖、删除即将被加载的 JS 文件和 CSS 文件。

另外一个函数:wp_print_scripts()

虽然将 JavaScript 文件都放到页面末尾加载对于页面加载速度很有帮助,但是请注意,所谓页面末尾指的是在 WordPress 的 wp_footer() 函数中调用,这个函数通常刚好位于页面的 </body> 标签前面(当然是末尾了)。

有时候我们可能会在 wp_footer 函数出现之前就需要用到某些 JavaScript,比如 jquery.js 文件。

这样的情况也是很常见的。比如我单独创建了一个链接页面,在这个页面中我使用了 jQuery 方法来获取链接网站的 favicon。很显然,我只需要在这唯一一个页面使用这部分代码,所以将这段代码直接放在这个页面模板中是最好的做法。

问题来了:这部分内容显然是在 wp_footer 之前出现的,那么这段代码就在 jquery.js 文件之前出现了,导致该代码段实际上无法工作,因为调用 jQuery 方法的代码段必须比 jquery.js 文件后加载。

那么如何处理这种特殊情况呢?其实也很简单。以上面的情景为例,既然我们需要先调用 jquery.js 文件,那我们就在该代码段之前直接输出需要的 jquery.js 文件,不使用 wp_enqueue_script() 函数,而改用wp_print_scripts() 函数。

wp_enqueue_script() 与 wp_print_scripts() 的区别是:wp_enqueue_script() 是告诉 WordPress “我在这个页面上需要用到某个 JavaScript 文件,你可要记得加载啊”。WordPress 默认在 wp_head() 中处理,而我们改为在 wp_footer() 中处理。wp_print_scripts() 则直接在你使用此方法的位置输出需要的 JavaScript 文件,而不是加入到 WordPress 的处理任务中。

如果我们在页面的中间使用,

 <?php wp_print_scripts('jquery'); ?>

直接输出了 jquery.js 文件(通常是其压缩版本 jquery.min.js),那么即使其它的插件或者什么东西使用,

 <?php wp_enqueue_script('jquery'); ?>

告诉 WordPress 需要加载 jquery.js,WordPress 在 wp_footer() 中处理的时候也会先检查前面是不是已经有了,如果有了就不会再重新加载一次。

在 WordPress 中加载 JavaScript 最好使用 wp_enqueue_script() 函数以减少问题提高效率。如果不是有这些特殊情况要处理,使用 Autoptimize 插件显然比较好,它全面完成任务而且使用简单。但是如果使用的主题本身已经很简洁了,那么 直接把JavaScript脚本放在footer或者使用:JavaScript to Footer(后台搜索即可安装)更简单高效,也就更好。 查看全部
WordPress 本身以及主题和插件通常需要加载一些 JavaScript 来实现某些特殊功能。为了最大限度地保证兼容性,不至于出现 JavaScript 失效的情况,所以一般在页头加载 JavaScript 文件。

但是我们一般不建议直接去修改主题的 header.php,或者添加代码到 wp_head() 或 wp_footer() 钩子上,而是要使用 WordPress 官方文档建议使用的 WP 内建的wp_enqueue_script() 和 wp_enqueue_style() 等函数进行操作。
 
 
函数:wp_enqueue_script()

函数用法:

<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>

参数解释:

$handle:用于区别 JS 名称,即标识字串 (string);
$src:JS 的文件 URL (string);
$deps:加载的 JS 所依存的其他 JS 标识字串数组 (array:string, 非必需);
$ver:JS 的版本号,留空则使用当前 WP 版本号 (string, 非必需);
$in_footer:是否放置到网页 HTML 底部加载 (boolean, 非必需)。

函数:wp_enqueue_style()

函数用法:

<?php wp_enqueue_style( $handle, $src, $deps, $ver, $media ); ?>

参数解释:

$handle:用于区别 CSS 的名称,即标识字串 (string);
$src:CSS 的文件 URL (string);
$deps:加载的 CSS 所依存的其他 CSS 标识字串数组 (array:string, 非必需);
$ver:CSS 文件的版本号,留空则使用当前 WP 版本号 (string, 非必需);
$media:用于加载 CSS 的头部标签 link 的 media 参数值 (string, 非必需)。

示例:

<?php
function my_enqueue_scripts() {
if( !is_admin ) { // 前台加载的脚本与样式表
// 去除已注册的 jquery 脚本
wp_deregister_script( 'jquery' );
// 注册 jquery 脚本
wp_register_script( 'jquery', get_template_directory_uri() . '/js/jquery.js', false, '1.0', false );
// 提交加载 jquery 脚本
wp_enqueue_script( 'jquery' );
}
}
// 添加回调函数到 init 动作上
add_action( 'init', 'my_enqueue_scripts' );
?>

在以往我们制作 WP 主题的时候,当引入 JS 文件或 CSS 文件时,通常是直接编辑 header.php 文件,然后将相应的页面头部 HTML 代码添加进去。或者利用 wp_head() 函数钩子插入 HTML 代码。

遇到一个插件或主题功能比较多的 WordPres 网站时,如果仍使用自行插入代码的方式引入 JS / CSS,将可能导致 JS 的重载和 CSS 的重定义或覆盖的后果。而使用 wp_enqueue_script() 和wp_enqueue_style() 等函数操作头部引用,将输出 HTML 语句的工作交给 WP 内核去完成(几乎所有插件都这么做),不仅能够避免重复加载的现象出现,也可实现按 PHP 脚本顺序,任意修改、覆盖、删除即将被加载的 JS 文件和 CSS 文件。

另外一个函数:wp_print_scripts()

虽然将 JavaScript 文件都放到页面末尾加载对于页面加载速度很有帮助,但是请注意,所谓页面末尾指的是在 WordPress 的 wp_footer() 函数中调用,这个函数通常刚好位于页面的 </body> 标签前面(当然是末尾了)。

有时候我们可能会在 wp_footer 函数出现之前就需要用到某些 JavaScript,比如 jquery.js 文件。

这样的情况也是很常见的。比如我单独创建了一个链接页面,在这个页面中我使用了 jQuery 方法来获取链接网站的 favicon。很显然,我只需要在这唯一一个页面使用这部分代码,所以将这段代码直接放在这个页面模板中是最好的做法。

问题来了:这部分内容显然是在 wp_footer 之前出现的,那么这段代码就在 jquery.js 文件之前出现了,导致该代码段实际上无法工作,因为调用 jQuery 方法的代码段必须比 jquery.js 文件后加载。

那么如何处理这种特殊情况呢?其实也很简单。以上面的情景为例,既然我们需要先调用 jquery.js 文件,那我们就在该代码段之前直接输出需要的 jquery.js 文件,不使用 wp_enqueue_script() 函数,而改用wp_print_scripts() 函数。

wp_enqueue_script() 与 wp_print_scripts() 的区别是:wp_enqueue_script() 是告诉 WordPress “我在这个页面上需要用到某个 JavaScript 文件,你可要记得加载啊”。WordPress 默认在 wp_head() 中处理,而我们改为在 wp_footer() 中处理。wp_print_scripts() 则直接在你使用此方法的位置输出需要的 JavaScript 文件,而不是加入到 WordPress 的处理任务中。

如果我们在页面的中间使用,

 <?php wp_print_scripts('jquery'); ?>

直接输出了 jquery.js 文件(通常是其压缩版本 jquery.min.js),那么即使其它的插件或者什么东西使用,

 <?php wp_enqueue_script('jquery'); ?>

告诉 WordPress 需要加载 jquery.js,WordPress 在 wp_footer() 中处理的时候也会先检查前面是不是已经有了,如果有了就不会再重新加载一次。

在 WordPress 中加载 JavaScript 最好使用 wp_enqueue_script() 函数以减少问题提高效率。如果不是有这些特殊情况要处理,使用 Autoptimize 插件显然比较好,它全面完成任务而且使用简单。但是如果使用的主题本身已经很简洁了,那么 直接把JavaScript脚本放在footer或者使用:JavaScript to Footer(后台搜索即可安装)更简单高效,也就更好。

WordPress 函数:apply_filters()(创建过滤器)

痞子再 发表了文章 • 0 个评论 • 658 次浏览 • 2017-03-06 09:29 • 来自相关话题

apply_filters() 函数用来创建一个过滤器,大多数被用在函数中,是 WordPress 插件机制中非常重要的一个函数,能让其它的主题和插件对一个值进行修改过滤。
 
用法
apply_filters( $tag, $value, $var... );参数

$tag

(字符串)(必须)过滤器的名字。

默认值:None

$value

(混合)(必须)要过滤的值,如果没人过滤则直接返回这个值。

$var

(混合) (可选)传给过滤函数额外的变量参数,辅助过滤函数对返回值进行操作,可以添加无限个。

返回值

(混合)过滤后的值,如果没人过滤则直接返回 $value 的值。

例子

没人过滤:echo apply_filters( 'test', '可以被修改的值' );打印结果:

可以被修改的值

有人过滤:function test_func(){
return '修改值';
}
add_filter( 'test', 'test_func' );
echo apply_filters( 'test', '可以被修改的值' );打印结果:

修改值

接收参数:function test_func(){
return '修改值';
}
add_filter( 'test', 'test_func' );
function test_func2( $text ){
return $text . '2';
}
add_filter( 'test', 'test_func2' );
echo apply_filters( 'test', '可以被修改的值' );多个参数:function test_func( $text, $var, $var2 ){
return '修改值' . $var1 . $var2;
}
add_action( 'test', 'test_func', 10, 3 );
echo apply_filters( 'test', '可以被修改的值', '辅助值1', '辅助值2' );其它

此函数位于:wp-includes/plugin.php 查看全部
apply_filters() 函数用来创建一个过滤器,大多数被用在函数中,是 WordPress 插件机制中非常重要的一个函数,能让其它的主题和插件对一个值进行修改过滤。
 
用法
apply_filters( $tag, $value, $var... );
参数

$tag

(字符串)(必须)过滤器的名字。

默认值:None

$value

(混合)(必须)要过滤的值,如果没人过滤则直接返回这个值。

$var

(混合) (可选)传给过滤函数额外的变量参数,辅助过滤函数对返回值进行操作,可以添加无限个。

返回值

(混合)过滤后的值,如果没人过滤则直接返回 $value 的值。

例子

没人过滤:
echo apply_filters( 'test', '可以被修改的值' );
打印结果:

可以被修改的值

有人过滤:
function test_func(){
return '修改值';
}
add_filter( 'test', 'test_func' );
echo apply_filters( 'test', '可以被修改的值' );
打印结果:

修改值

接收参数:
function test_func(){
return '修改值';
}
add_filter( 'test', 'test_func' );
function test_func2( $text ){
return $text . '2';
}
add_filter( 'test', 'test_func2' );
echo apply_filters( 'test', '可以被修改的值' );
多个参数:
function test_func( $text, $var, $var2 ){
return '修改值' . $var1 . $var2;
}
add_action( 'test', 'test_func', 10, 3 );
echo apply_filters( 'test', '可以被修改的值', '辅助值1', '辅助值2' );
其它

此函数位于:wp-includes/plugin.php

WordPress函数:add_action(添加动作)

痞子再 发表了文章 • 0 个评论 • 581 次浏览 • 2017-03-02 15:00 • 来自相关话题

说明

将函数连接到指定action(动作)。

在Plugin API/Action Reference 上查看动作hook列表。wordpress核心调用do_action() 时触发动作。

用法
 
<?php
add_action( $tag, $function_to_add, $priority,
$accepted_args );
?>参数

$tag

(字符串)(必填)$function_to_add  所挂载的动作(action)的名称。(在Plugin API/Action Reference 上查看动作hook列表)。也可以是一个主题或插件文件内部的一个动作,或者特定的标签“all”,这个函数将被所有的钩子(hooks)调用。

默认值:None

$function_to_add

(回调)(必填)你希望挂载的函数的名称。注:在 PHP“回调”类型文档中 所罗列的字符串格式化的语法均可用。

默认值:None

$priority

(整数)(可选)用于指定与特定的动作相关联的函数的执行顺序。数字越小,执行越早,具有相同优先级的函数在它们被添加到动作的顺序执行。

默认值:10

$accepted_args

(整数)(可选)挂钩函数所接受的参数数量。在 WordPress1.5.1 及以后的版本中,挂钩函数可以是调用do_action() 或 apply_filters()时设置的参数。例如,comment_id_not_found动作将传递任何函数,若该函数将所请求的评论编号连接到该动作。

默认值:1

返回值

(布尔)总是True。
 
 
函数历史

始见于 WordPress 1.2.0

源文件

add_action() 位于 wp-includes/plugin.php

原文:http://codex.wordpress.org/Fun ... ction 查看全部
说明

将函数连接到指定action(动作)。

在Plugin API/Action Reference 上查看动作hook列表。wordpress核心调用do_action() 时触发动作。

用法
 
<?php
add_action( $tag, $function_to_add, $priority,
$accepted_args );
?>
参数

$tag

(字符串)(必填)$function_to_add  所挂载的动作(action)的名称。(在Plugin API/Action Reference 上查看动作hook列表)。也可以是一个主题或插件文件内部的一个动作,或者特定的标签“all”,这个函数将被所有的钩子(hooks)调用。

默认值:None

$function_to_add

(回调)(必填)你希望挂载的函数的名称。注:在 PHP“回调”类型文档中 所罗列的字符串格式化的语法均可用。

默认值:None

$priority

(整数)(可选)用于指定与特定的动作相关联的函数的执行顺序。数字越小,执行越早,具有相同优先级的函数在它们被添加到动作的顺序执行。

默认值:10

$accepted_args

(整数)(可选)挂钩函数所接受的参数数量。在 WordPress1.5.1 及以后的版本中,挂钩函数可以是调用do_action() 或 apply_filters()时设置的参数。例如,comment_id_not_found动作将传递任何函数,若该函数将所请求的评论编号连接到该动作。

默认值:1

返回值

(布尔)总是True。
 
 
函数历史

始见于 WordPress 1.2.0

源文件

add_action() 位于 wp-includes/plugin.php

原文:http://codex.wordpress.org/Fun ... ction