wordpress主题或插件开发过程中经常会用到页面判断函数,如判断当前页面是否是文章内容页的函数is_single()、判断是否是单页面的函数is_page(),如果是判断当前页面是文章或单页面时就要结合两个函数一起使用。而is_singular()函数则是这两个函数的升级版,通过这一个函数即可以实现前面所述的判断,并且支持附件、自定义文章类型的判断。
语法
is_singular( string|array $post_types = '' )
参数
$post_types – 字符串或数组(string|array),文章类型的一个数组,可以是page、post、attachment或custom post types,默认值为空
返回值
如果结果是要判断的页面则返回true,否则返回false
实例
判断当前页面是否是文章内容页
<?php
if(is_singular('post')){
echo '这是文章post页面';
}
?>
判断当前页面是否是文章内容页或单页面
<?php
if(is_singular(array('post','page')){
echo '这是文章内容页或单页面';
}
?>
nameCheap也是我们最为喜欢的域名注册商之一,其虽然是从ENOM代理商做起来的,但是经历过年的壮大发展目前品牌已经深入我们用户口碑。其至少在我们普通站长中的口碑和形象还是非常好的,虽然不及Godaddy优惠码>多,也不支持支付宝付款,但是其DNS的稳定,以及变化多样的促销优惠信息还是深得我们喜欢。在NameCheap注册域名到底有哪些优势呢?
第一,性价比高。NameCheap在没有节日特别优惠活动的时候,平时的每月优惠活动价格并不是最为便宜的,但是首次注册域名送隐私保护这样折合出来的费用还是比较具有竞争力的。
第二,稳定性。我们在使用Godaddy域名的时候,如果我们是用来做中文网站,我们必须要用第三方DNS或者购买付费DNS解析才比较稳定,Namecheap域名的自带DNS还是相当的稳定。我们不需要再使用第三方DNS。
第三,免费隐私保护。购买域名,都免费赠送域名隐私保护,我个人还是比较喜欢隐私保护的,因为如果你的网站较多,还是会受到”站群”影响,虽然是微乎其微的影响,但毕竟还是有利的,尤其是对域名的安全性也是比较好。
第四,优惠活动。NameCheap每月都会有固定的优惠,不论是在主机还是在域名上,每月还是有小幅度的优惠;而且在每逢大的节日,都会有较大的转入和新注册优惠,而且还是比较大方。
第一、Namecheap域名优惠码
优惠码:SCARYDMS
备注说明:新注册或者转移.COM/ORG/NET/BIZ/INFO域名可以使用,新注册.COM域名仅需9.61+0.18美元,送隐私保护。转入.COM域名仅需8.79+0.18美元,送隐私保护。续费域名没有优惠。
第二、Namecheap企业邮局优惠码
优惠码:SCARYPE
Namecheap商家有提供企业邮局,如果我们有需要域名邮局、企业邮局的话可以选择,还是比较便宜的。优惠码折扣后可以六五折优惠。
第三、Namecheap SSL优惠码
优惠码:SCARYSSL
备注说明:新购买Namecheap SSL证书,可以享受八三折优惠。
第四、续费优惠码
优惠码:COUPONFCNC
Namecheap域名新注册活动便宜,但是续费是比较贵的,我们一定要使用这个优惠码享受续费优惠。适合域名和SSL等。
需要注意的几个问题:
第一,域名隐私保护也是免费的,我们可以在购买域名的时候开启。
第二,域名是可以自由转出的,但必须在新购买60天之后转出。
第三,在平时,如果有低价注册或者转入优惠,如果我们第二次转出到其他注册商,然后在有转入优惠想转入进来是不可以的。
1 一、添加WordPress文章字数统计代码
有些新媒体网站的文章开头,有字数统计和该文的预期阅读时间。
将以下代码添加到主题中的最后几个functions.php文件中 ?>
之前 ▼
//字数统计 function count_words ($text) { global $post; if ( '' == $text ) { $text = $post->post_content; if (mb_strlen($output, 'UTF-8') < mb_strlen($text, 'UTF-8')) $output .= '本文《' . get_the_title() .'》共' . mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($post->post_content))),'UTF-8') . '个字'; return $output; }
将以下代码添加到主题中的最后几个functions.php文件中 ?>
保存之后,你可以在WordPress文章内容的开头自动显示“预计阅读时间x分钟”▼
function lmsim_read_time($content){ $text = trim(strip_tags( get_the_content())); $text_num = mb_strlen($text, 'UTF-8'); $read_time = ceil($text_num/400); $content = '<div class="read-time">系统预计阅读时间 <span>' . $read_time . '</span> 分钟</div>' . $content; return $content; } add_filter ( 'the_content', 'lmsim_read_time');
在测试之后,发现上面代码统计中的单词数有一些错误,这些错误,超出了实际错误
将以下代码添加到主题中的最后几个functions.php文件中 ?>
之前 ▼
//字数和预计阅读时间统计 function count_words_read_time () { global $post; $text_num = mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($post->post_content))),'UTF-8'); $read_time = ceil($text_num/400); $output .= '本文《' . get_the_title() .'》共' . $text_num . '个字,系统预计阅读时间或需' . $read_time . '分钟。'; return $output; }
然后,将调用统计代码添加到single.php文件中的适当位置。
<?php echo count_words_read_time(); ?>
在我们测试之后,当字数小于或等于400时,即当预计阅读时间小于或等于1分钟时。
但是,如果它超过400,它将是有偏差的。
ceil() 函数向上舍入到最接近的整数。
这意味着返回不小于x的下一个整数。
如果x具有小数部分,则ceil() 返回的类型仍然是float
,因为float
的范围通常大于integer。
例子
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress如何添加文章字数统计和预计阅读时间?》,对您有帮助。
为了保护wordpress数据的安全,对于展示型网站我们强烈建议将wordpress的接口文件wp-json禁用,以防止网站数据泄露。
WordPress网站一般会有开放的接口来获取网站元数据
参考:https://developer.wordpress.org/rest-api/reference/posts/
例如这个样例网站:https://www.wordpressx.com/
获取他们博客列表接口为:
https://www.wordpressx.com/wp-json/wp/v2/posts
一般读接口都是不保护的,你直接浏览器打开就能访问到。
我们一般抓取一个WordPress网站,只需要抓取他的posts、categories、tags即可。
WordPress 4.4 版本以后便具备了 REST API 功能,也就是通过 wp-json 的 URL 就可以访问,通过 REST API 生成的 JSON 接口,可以轻松的获取网站数据,便于做 APP 或者小程序的调用接口等,然而为了防止被其他人公开调用,可以增加权限判断和 IP 限制,当然老黑觉得也可以修改一下“wp-json”这个访问路径。
WP REST API 是 WordPress 的一个功能,为其提供对外标准的 RESTFul 接口,随着 RESTFul 的畅行和各种前端框架的出现,WP REST API 可以让 WordPress 不仅仅存在 Web 端,可以让 WordPress 不仅仅履行一个博客功能,而是可以让它作为后台终端(BackEnd),然后以各种应用的形式实现在各种各样的设备中。
其实修改非常简单,算是一行代码就可以搞定,因为 WordPress 本身就提供了一个 rest_url_prefix 的动作钩子,直接返回我们需要修改成最终的路径即可,代码如下:
// 自定义 WordPress wp-json 路径 add_filter( 'rest_url_prefix', function() { return 'wp-json'; });
直接将代码放置到当前主题 functions.php 文件中,然后记得在 WordPress 后台-设置-固定链接中点击一下保存,这样固定链接才会被 WordPress 刷新,代码才会完全生效,然后就可以直接访问了。
//禁用 REST API、移除 wp-json add_filter('rest_enabled', '_return_false'); add_filter('rest_jsonp_enabled', '_return_false'); remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
当然也可以通过以上四行代码禁止 WP REST API,从而彻底关闭 WordPress 的 json 数据,如果你的 WordPress 没有使用,那么老黑建议禁止关闭该功能是很有必要的。
esc_url()函数主要用于 URL 过滤: