给WordPress的评论和留言加道数学题

2008年10月04日 23:57 . 分类 WordPress相关 . 10 条评论 . 被踩 406 次 

文章作者: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在导航条隐藏某个已发布的页面

2008年8月30日 1:16 . 分类 WordPress相关 . 4 条评论 . 被踩 376 次 

文章作者: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标签云的字体大小以及显示数量

2008年8月26日 0:11 . 分类 WordPress相关 . 16 条评论 . 被踩 596 次 

文章作者: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 函数详解

2008年8月21日 0:00 . 分类 WordPress相关 . 3 条评论 . 被踩 307 次 

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

唔,今天突然发现很多人不晓得这个函数,而这个函数又是比较强大的一个,于是乎我就写写。。。

wp_list_bookmarks 这个函数也是为Blogroll服务的,比以前的函数 get_links_list() 和 get_links() 更加强大,它有很多参数,参数和参数之前用"&"分隔。详见全文。

阅读全文

让Wordpress评论时可以只写姓名不写邮箱

2008年8月18日 18:58 . 分类 WordPress相关 . 5 条评论 . 被踩 281 次 

文章作者: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,所以必须二个条件都符合才行,那么我们可以将其中一个嵌套提出来单独判断。最后的判断方式是:首先判断姓名是否为空,若为空则弹出错误提示,不为空继续检查邮箱地址,如果邮箱地址为空则继续,不为空则判断邮箱地址格式是否正确,格式不正确弹出错误提示,格式正确则完成评论。

那么实现的代码为(我小小汉化了一下):

  1. if ( get_option('require_name_email') &amp;&amp; !$user-&gt;ID ) {
  2. if ( '' == $comment_author )
  3. wp_die(__('Slyar说:名字你都不写?想当火星人?'));
  4. if ( "" != $comment_author_email) {
  5. if ( !is_email($comment_author_email))
  6. wp_die(__('Slyar说:拜托,要写邮箱写对成不?') );
  7. }
  8. }

在实际测试的时候发现还是会出现Alert错误提示,而php代码里没有Alert,那么应该是模板或者插件自带的判断,经过分析查找最后得到结论是"Wordpress Thread Comment"这个插件内部含有评论判断语句,修改的方法也大同小异,我就不说了。

如果没有插件干扰,那么经过修改就可以成功实现Wordpress评论时只写姓名不写邮箱了。

PS.要使用这个功能,后台设置-评论中的"评论者必须输入姓名及电子邮箱"一定要打钩!

更改Wordpress版本号以及去掉更新提示

2008年8月18日 15:29 . 分类 WordPress相关 . 1 条评论 . 被踩 474 次 

文章作者: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>";并将其删除就可以了

这下,整个世界清净了。。。

关闭
E-mail It