给WordPress的评论和留言加道数学题
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
嘿嘿,这个是小寒(CGrrr.COM)要求写的,不得不写呀~据说是小寒被垃圾评论折磨的不得了才准备安个验证码的~~
咱这个不是验证码,咱看见那些鬼都不认识的图里的数字就头疼,咱这次用5岁的题目来考bots。。。
本来我是想写PHP代码的,不过考虑到大家还是喜欢插件,那我也就找了一个插件出来,正好咱也省事,嘎嘎~这个Spam插件的效果就是在留言评论之前访客必须做一道加法题,5岁的题目,不过我想bot是不会算的。。。
这个插件就是Math Comment Spam Protection Plugin,需要的点击进去下载就OK了,当然我也把插件放到了下载基地,名称是Slyar-math-protection.rar,大家也可以在我这里下载。
下载上传安装,我就不说了,需要注意的是第一次使用需要先到管理界面点击一下"Update Options",否则可能会出现错误提示。
好了,插件安装好了我们就该调用了,打开你模板里的comments.php或者其他留言板的模板,找到相应位置加入以下代码就OK了。
<?php
if ( function_exists('math_comment_spam_protection') ) {$mcsp_info = math_comment_spam_protection();?><label for="mcspvalue">Slyar给你出道题: <?php echo $mcsp_info['operand1'] . ' + ' . $mcsp_info['operand2'] . ' =?' ?></label><br/><p><input type="text" name="mcspvalue" id="mcspvalue" value="" size="40" tabindex="4" />
<input type="hidden" name="mcspinfo" value="<?php echo $mcsp_info['result']; ?>" /></p><?php } // if function_exists... ?>
里面的内容大家可以做相应修改,完成后的结果是:
让Wordpress在导航条隐藏某个已发布的页面
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
有人问起如何在导航条上隐藏一个已发布的页面,实现页面可以访问但是在导航条上看不到的效果,查过Wordpress的Codex后得到方法。
Exclude Pages from List
Use the exclude parameter hide certain Pages from the list to be generated by wp_list_pages.
<ul>
<?php wp_list_pages('exclude=17,38' ); ?>
</ul>
知道了这个参数,那么解决方法也就有了:
1、在Wordpress后台得到你想要隐藏的页面ID号,比如说10号
2、打开模板文件夹下的header.php
3、查找php wp_list_pages,例如我就得到:
<?php wp_list_pages('title_li=&depth=2&sort_column=menu_order'); ?>
4、在后面的参数表里加入一句&exclude=10(就是你想隐藏的ID号),例如我修改后就是:
<?php wp_list_pages('title_li=&depth=2&sort_column=menu_order&exclude=10'); ?>
5、保存文件,搞定
修改WordPress标签云的字体大小以及显示数量
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
恩,有朋友问到如何修改Widgets标签云的字体大小,稍微研究了一下,发现很简单,还是修改代码!我就是喜欢改代码,嘎嘎~
因为是修改Widgets标签云,所以目标文件依旧是\wp-includes\widgets.php,打开并搜索wp_tag_cloud,这个就是标签云的调用函数了,查了一下参数表,得到wp_tag_cloud函数的参数如下:
smallest – Adjusts the size of the smallest tags in the cloud. Default is "8".
largest – Adjusts the size of the biggest tags in the cloud. Default is "22".
unit – Sets the unit type for font size (i.e. point or em). Default is "pt".
number – How many tags will display in the cloud. Default is "45".
format – "Flat" displays an inline cloud with each term separated by whitespace. "List" generates an unordered list. "Array" lets you define an array of tags. Default is "flat".
orderby – Sort the cloud by "name" or "count". Default is "name".
order – Sort the cloud in ascending or descending order. Default is "ASC".
这样结果就很明了了,如果要修改字体的大小,只要把 wp_tag_cloud(); 修改为 wp_tag_cloud('unit=px&smallest=8&largest=20'); 即可,其中:
unit=px是字体大小的单位,使用我们熟悉的px最好;
smallest=8是指最小字体大小,自己修改;
largest=20是指最大字体大小,自己修改。
还可以使用number=45来设置标签的显示数量,orderby=count来使得标签云按照标签的使用次数来排列等等。。。
好了,关于标签云函数Slyar就介绍到这里,大家自己发挥呵呵。
Wordpress友情链接 wp_list_bookmarks 函数详解
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
唔,今天突然发现很多人不晓得这个函数,而这个函数又是比较强大的一个,于是乎我就写写。。。
wp_list_bookmarks 这个函数也是为Blogroll服务的,比以前的函数 get_links_list() 和 get_links() 更加强大,它有很多参数,参数和参数之前用"&"分隔。详见全文。
让Wordpress评论时可以只写姓名不写邮箱
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
Wordpress的评论默认有2种方式,一种是姓名和邮箱全写,另一种是姓名和邮箱全不写。全写吧,很多访客都没有邮箱或者不喜欢写邮箱,这样就导致评论减少;全不写吧,又会有很多垃圾评论。。。这时有人提出:能不能让访客必写姓名又可以不写邮箱呢?
答案是肯定的。首先我们来分析一下评论提交时的php文件,位于Wordpress根目录下的wp-comments-post.php,看这一段:
if ( get_option('require_name_email') && !$user->ID ) {
if ( 6 > strlen($comment_author_email) || '' == $comment_author )
wp_die( __('Error: please fill the required fields (name, email).') );
elseif ( !is_email($comment_author_email))
wp_die( __('Error: please enter a valid email address.') );
}
我们看到这是一段嵌套if判断,Wordpress首先判断后台的评论选项是否要求填写姓名和邮箱,如果要求,则先检查评论者的姓名和邮箱的长度(姓名不能为空,邮箱长度不能小于6);如果姓名为空或者邮箱长度小于6,则提示"Error: please fill the required fields (name, email)",若此项检查符合要求,那么继续检查邮箱是否符合格式,若格式不正确则提示"Error: please enter a valid email address",若邮箱格式也符合要求,评论才会成功发出。
一开始为了简单,就把第二个if判断删除了,试验后发现不可行。。。换思路。。。
因为它是嵌套if,所以必须二个条件都符合才行,那么我们可以将其中一个嵌套提出来单独判断。最后的判断方式是:首先判断姓名是否为空,若为空则弹出错误提示,不为空继续检查邮箱地址,如果邮箱地址为空则继续,不为空则判断邮箱地址格式是否正确,格式不正确弹出错误提示,格式正确则完成评论。
那么实现的代码为(我小小汉化了一下):
- if ( get_option('require_name_email') && !$user->ID ) {
- if ( '' == $comment_author )
- wp_die(__('Slyar说:名字你都不写?想当火星人?'));
- if ( "" != $comment_author_email) {
- if ( !is_email($comment_author_email))
- wp_die(__('Slyar说:拜托,要写邮箱写对成不?') );
- }
- }
在实际测试的时候发现还是会出现Alert错误提示,而php代码里没有Alert,那么应该是模板或者插件自带的判断,经过分析查找最后得到结论是"Wordpress Thread Comment"这个插件内部含有评论判断语句,修改的方法也大同小异,我就不说了。
如果没有插件干扰,那么经过修改就可以成功实现Wordpress评论时只写姓名不写邮箱了。
PS.要使用这个功能,后台设置-评论中的"评论者必须输入姓名及电子邮箱"一定要打钩!
更改Wordpress版本号以及去掉更新提示
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
1、有人说Wordpress不好,从源代码里就能看到版本号,不安全。于是乎很多人就开始想办法删掉那个提示,可是又有很多人说那个源代码里的版本号不能删,因为下面写着“leave this for stats please”。。。可是为什么要删呢?我们的目的是让别人看不出我们真正的版本号,又不是不让别人看到我们的版本号。。
来,看看Slyar的版本号。
再看看源代码里的。
<meta name="generator" content="WordPress 8.0.0 Final" />
这样是不是看起来很爽?那么我们来看看怎么修改:
打开\wp-includes\version.php修改$wp_version的值就可以了。
这样做既更改了版本号,同时也去掉了后台那个讨厌等更新提示(版本号要比现在的高),一举两得。
2、如果你想保持现有的版本号,同时还想去掉Wordpress在登陆后台的那个可恶的提示,那么我们需要这么做:
打开\wp-admin\includes\update.php查找echo "<div id='update-nag'>$msg</div>";并将其删除就可以了。
这下,整个世界清净了。。。












