ZBlog PHP自动调用文章内图片作为缩略图的方法

如今比较博客网站喜欢使用图文格式的,比如在列表展示的时候前面是缩略图,后面是摘要介绍。如果我们在调整或者制作ZBLOG PHP主题模板的时候,调用缩略图的方法也很简单,我们可以用自定义字段工具手工设置,也可以用自动获取内容中的第一张图片作为缩略图。

如果内容中没有图片,我们可以给一张已经准备好的随机图片作为缩略图。或者固定一张图片都可以。

{php}
$temp=mt_rand(1,4);
$pattern=”/<[img|IMG].*?src=[\’|\”](.*?(?:[\.gif|\.jpg|\.png]))[\’|\”].*?[\/]?>/”;
$content = $article->Content;
preg_match_all($pattern,$content,$matchContent);
if(isset($matchContent[1][0]))
$temp=$matchContent[1][0];
else
$temp=$zbp->host.”zb_users/theme/$theme/style/images/random/$temp.jpg”;
//需要在相应位置放置4张jpg的文件,名称为1,2,3,4
{/php}
<img src=”{$temp}” />

我们需要在random目录中准备4张图片,这样可以在没有内容图片的时候,随机从4张中抽样一张出来作为缩略图。

ZBlog PHP程度调用置顶推荐文章列表

如果我们在使用ZBLOG PHP程序需要调用所有置顶文章的列表显示的时候,可以通过下面的脚本实现。因为考虑到某些特定文章的展现,麦子准备考虑到全部将文章置顶定类,这样通过置顶文章分类的方式调用出来。这样可以不需要借助其他的功能区分。

{$topArray = GetList(10, null, null, null, null, null, array(“only_ontop”xa0 => true));}
<ul>
{foreach $topArray as $top}
<li><a href=”{$top.Url}” title=”{$top.Title}” target=”_blank”>{$top.Title}</a></li>
{/foreach}
</ul>

这里我们将上面的脚本添加到需要调用的位置。默认是调用10篇,我们可以在上面脚本10数字修改调用数量。

WordPress无插件实现文章浏览次数调用脚本

麦子博客中用户点击浏览次数也是使用的插件Postviews,但是鉴于能尽量少用插件就少用插件的原则,我们可以实现用脚本实现,不需要用到插件。在这里整理这个脚本可以替换我们的浏览次数插件,添加方法很简单,具体我们看下面的操作。

第一、将脚本放到当前主题functions.php中

function record_visitors()
{
if (is_singular())
{
global $post;
$post_ID = $post->ID;
if($post_ID)
{
$post_views = (int)get_post_meta($post_ID, ‘views’, true);
if(!update_post_meta($post_ID, ‘views’, ($post_views+1)))
{
add_post_meta($post_ID, ‘views’, 1, true);
}
}
}
}
add_action(‘wp_head’, ‘record_visitors’);
function post_views($before = ‘(点击 ‘, $after = ‘ 次)’, $echo = 1)
{
global $post;
$post_ID = $post->ID;
$views = (int)get_post_meta($post_ID, ‘views’, true);
if ($echo) echo $before, number_format($views), $after;
else return $views;
}

保存好脚本。

第二、脚本的使用

<?php post_views(‘ ‘, ‘ 次’); ?>

我们可以将调用脚本放到需要展现浏览次数的位置就可以实现无插件浏览次数的调用。

设置WordPress投稿文章字数大小限制

如果我们的x08WordPress程序网站是自己使用的,那应该不需要添加这样的功能,因为我们编辑文章时候对于字数是可以控制的,我们总不至于写上三五个字就提交发布。但是,如果我们的Wordpress程序网站可以用户投稿提交文章的,那最好还是设置提交文章的字数限制。

这样一来可以提高投稿的质量,二来可以不至于用户乱投稿行为,这里麦子整理这个脚本,如果有需要的可以添加到网站中限制投稿文章的字数限制。

function minimum_number_words($content)
{
global $post;
$content = $post->post_content;
if (str_word_count($content) < 500 )
wp_die( __(‘提高投稿文章字数需要超过500个’) );
}

屏蔽wp-login.php登录入口确保WordPress网站后台安全

WordPress程序默认的后台地址wp-login.php,虽然我们的密码设置比较复杂,但是如果被软件一直扫后台入口,一来影响网站的速度增加服务器的负担,二来万一被扫到密码,那就处于不安全的境地。所以,我们最好将后台地址入口隐藏屏蔽起来,我们可以通过下面的命令实现隐蔽wp-login.php入口。

第一、脚本案例

add_action(‘login_enqueue_scripts’,’login_protection’);
function login_protection(){
if($_GET[‘mylogin‘] != ‘yd631‘)header(‘Location: http://随便一个地址/‘);
}

第二、参数修改和解释

如果我们根据上面的红色部分修改,那我们的网站后台地址就是:

http://你的域名/wp-login.php?mylogin=yd631

对应红色部分,我们修改成自己的就可以,对于跳转网址,我们可以设置成首页或者一个乱七八糟的其他地址。

第三、添加脚本

将第一步的脚本添加到当前主题的functions.php文件中,这样就可以实现隐藏后台入口地址,增加WordPress程序的安全。

禁止WordPress后台谷歌字体加载 提高后台管理页面速度

由于某些因素,我们选择的WordPress主题可以屏蔽谷歌字体,但是WP后台的谷歌字体有些时候无法去掉,导致登入网站后台速度很慢。我们可以不用这个谷歌字体,直接屏蔽掉。当然,新版本的WP程序已经取消谷歌字体的问题,这样可以提高打开速度,如果我们的WORDPRESS后台还是老版本且有谷歌字体,可以通过下面方法屏蔽掉。

1、代码脚本

function coolwp_remove_open_sans_from_wp_core() {
wp_deregister_style( ‘open-sans’ );
wp_register_style( ‘open-sans’, false );
wp_enqueue_style(‘open-sans’,”);
}
add_action( ‘init’, ‘coolwp_remove_open_sans_from_wp_core’ );

2、添加脚本

将上面的脚本添加到当前主题functions.php文件中,这样后台就没有谷歌字体了。

备注:这几天360前端字库取消运维,而且谷歌字体库把服务器放到国内了,所以不取消谷歌字体库也没问题,国内暂时可以打开。

自动将WordPress文章内容外部链接实现跳转效果

我们都知道,如果网站内容中有外部链接会导致权重的降低和导出,这里一般我们对外部链接采用跳转方式,这样可以实现降低权重的流失。如果手工设置的话就显得比较麻烦,在这篇文章中,麦子整理这个方法可以实现自动将内容部分的外部链接实现跳转方式导出到外部链接。

1、添加脚本到当前主题functions.php

add_filter(‘the_content’,’go_url’,999);
function go_url($content){
preg_match_all(‘/href=”(.*?)”/’,$content,$matches);
if($matches){
foreach($matches[1] as $val){
if( strpos($val,home_url())===false&&strpos($val,”javascript:void(0)”)===false )
$content=str_replace(“href=\”$val\””, “rel=\”nofollow\” target=\”_blank\” href=\”” . get_bloginfo(‘wpurl’). “/go?url=” .base64_encode($val). “\””,$content);
}
}
return $content;
}

2、添加go文件夹到网站根目录,以及文件夹中添加index.php

<?php $url = $_GET[‘url’]; $url = base64_decode($url); ?>
<meta charset=”utf-8″ />
<meta http-equiv=”refresh” content=”0.1;url=<?php echo $url; ?>”>

将上面代码添加到index.php文件中。

这样,我们可以将所有的内容部分外链接都加上nofollow标签。

WordPress文章标题自动生成英文URL路径

WordPress架设的网站如今默认已经是伪静态,但实际的路径则需要我们在后台固定链接设置。设置URL文章的地址还是比较讲究的,一来关乎用户的体验,二来对于路径也要符合一定的规范。我们可以使用数字URL,也可以用英文或者拼音。但是用拼音和英文都需要我们手工设置。

我们都知道WordPress有丰富的插件实现需要的英文、拼音路径URL,这里麦子分享一个非插件实现文章标题URL采用英文地址。

第一、将下面代码复制贴到当前主题的functions.php

function bymt_slug_auto_translate( $title )
{
$wp_http_get = wp_safe_remote_get( ‘http://fanyi.baidu.com/v2transapi?from=zh&to=en&transtype=trans&query=’ . $title );
if ( empty( $wp_http_get->errors ) )
{
if ( ! empty( $wp_http_get[‘body’] ) )
{
$trans_result = json_decode( $wp_http_get[‘body’], true );
$trans_title = $trans_result[‘trans_result’][‘data’][0][‘dst’];
return $trans_title;
}
}
return;
}

add_filter( ‘sanitize_title’, ‘bymt_slug_auto_translate’, 1 );

2、自由的添加文章

这样我们在添加文章提交发布之后,就会实现自动将文章标题实现英文翻译URL,不过这样也有一个不好,英文网站无所谓,如果是中文网站URL太长,还是需要手工设置。

无插件实现WordPress最近24小时更新内容数调用

我们一般选择WordPress主题的时候自定义侧栏调用的都是最新更新的内容,按照顺序调用最新几篇帖子,如果我们的网站较大、内容较多。其实我们更需要灵活的调用内容方式,比如调用最新24小时的内容到某个位置。这里我们可以用插件实现,但是能不用插件就不用插件。

第一、获取24小时内的内容调用脚本

function get_posts_count_from_last_24h($post_type =’post’) {
global $wpdb;
$numposts = $wpdb->get_var(
$wpdb->prepare(
“SELECT COUNT(ID) “.
“FROM {$wpdb->posts} “.
“WHERE “.
“post_status=’publish’ “.
“AND post_type= %s “.
“AND post_date> %s”,
$post_type, date(‘Y-m-d H:i:s’, strtotime(‘-24 hours’))
)
);
return $numposts;
}

使用方法:

1、将上面的脚本添加到当前主题的Functions.php文件中

2、调用全文24小时内容

<?php echo get_posts_count_from_last_24h(); ?>

3、调用特定分类24小时内容

<?php echo get_posts_count_from_last_24h(‘yd631‘); ?>

这里将红色的部分修改成我们分类就可以。

第二、调用今天更新内容数

function get_posts_count_from_today($post_type =’post’) {
global $wpdb;
$numposts = $wpdb->get_var(
$wpdb->prepare(
“SELECT COUNT(ID) “.
“FROM {$wpdb->posts} “.
“WHERE post_status=’publish’ “.
“AND post_type= %s “.
“AND DATE_FORMAT(post_date, ‘%Y-%m-%d’) = %s”,
$post_type, date(‘Y-m-d’, time())
)
);
return $numposts;
}

使用方法:

1、将上面脚本添加到当前主题的functions.php文件中

2、调用今天全站的内容数

<?php echo get_posts_count_from_today(); ?>

3、调用某个分类今天更新的内容数

xa0<?php echo get_posts_count_from_today(‘yd631‘); ?>

只要将上面的红色部分替换成分类名称。

WordPress站点2种限制评论字数的方法

我们肯定希望自己的Wordpress网站能有更多的用户而且能评论留言跟我们互动,这样才显得我们的博客网站受欢迎。但是,有些评论软件或者有些捣乱的用户会直接塞满很多的内容,导致我们网站数据库爆满,这样一来不利于其他用户的体验,二来对网站也有一定影响。

在这里,麦子整理2个限制评论留言字数的方法,无插件实现。

1、AJAX方法

xa0xa0xa0 /* 设定评论字数限制开始 */
function set_comments_length($commentdata) {
$minCommentlength = 3;xa0xa0xa0xa0xa0 //最少字数限制
$maxCommentlength = 1000;xa0xa0 //最多字数限制
$pointCommentlength = mb_strlen($commentdata[‘comment_content’],’UTF8′);xa0xa0xa0 //mb_strlen 1个中文字符当作1个长度
if ($pointCommentlength < $minCommentlength){
err(‘抱歉,您的评论字数过少,请至少输入’ . $minCommentlength .’个字(目前字数:’. $pointCommentlength .’个字)’);
exit;
}
if ($pointCommentlength > $maxCommentlength){
err(‘对不起,您的评论字数过多,请少于’ . $maxCommentlength .’个字(目前字数:’. $pointCommentlength .’个字)’);
exit;
}
return $commentdata;
}
add_filter(‘preprocess_comment’, ‘set_comments_length’);
/* 设定评论字数限制结束 */

2、普通方法

xa0xa0xa0 /* 设定评论字数限制开始 */
function set_comments_length($commentdata) {
$minCommentlength = 3;xa0xa0xa0xa0xa0 //最少字数限制
$maxCommentlength = 1000;xa0xa0 //最多字数限制
$pointCommentlength = mb_strlen($commentdata[‘comment_content’],’UTF8′);xa0xa0xa0 //mb_strlen 1个中文字符当作1个长度
if ($pointCommentlength < $minCommentlength){
header(“Content-type: text/html; charset=utf-8”);
wp_die(‘抱歉,您的评论字数过少,请至少输入’ . $minCommentlength .’个字(目前字数:’. $pointCommentlength .’个字)’);
exit;
}
if ($pointCommentlength > $maxCommentlength){
header(“Content-type: text/html; charset=utf-8”);
wp_die(‘对不起,您的评论字数过多,请少于’ . $maxCommentlength .’个字(目前字数:’. $pointCommentlength .’个字)’);
exit;
}
return $commentdata;
}
add_filter(‘preprocess_comment’, ‘set_comments_length’);
/* 设定评论字数限制结束 */

我们只需要选择上面其中之一,添加到当前主题的Functions.php文件中就可以使用。