17713433920 info@mac163.com
阅读后持续时间WordPress简码
阅读后持续时间WordPress简码

几天前,我看到一个网站在页面顶部提供了一些额外的信息:预计阅读该页面的时间。我觉得这很有趣,并希望使用WordPress 短代码创建类似的内容。

这很容易做到,所以让我们开始吧!

步骤1:建立外挂程式

与往常一样,我们将创建一个插件,因此,在wp-content/plugins下创建一个新文件夹,并将其命名为“ post-reading-duration-shortcode ”,打开它,并创建一个名为“ post-reading-duration ”的文件。-shortcode.php ”。打开文件并粘贴以下代码:

<?php
/*
Plugin Name: Post Reading Duration Shortcode
Plugin URL: http://remicorson.com/
Description: Display the estimated time to read the post
Version: 0.1
Author: Remi Corson
Author URI: http://remicorson.com
Contributors: corsonr
Text Domain: rc_prds
Domain Path: languages
*/

保存文件后,您应该在插件页面上看到插件列表。

步骤2:建立简码

基本上,插件将提供不带属性的简单短代码。文本将被封装在短代码标签之间。当访客需要阅读帖子时,短代码将显示在前端。要创建简码,请使用以下代码:

/**
 * Register the shortcode
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/
function rc_prds_add_reading_duration_shortcode( $atts, $content = null ) {
	return '<span class="reading_duration">'.$content.'</span>';
}

add_shortcode("reading_duration", "rc_prds_add_reading_duration_shortcode");

您可以保存文件。如果将简短代码[reading_duration]预计阅读时间:XX [/ reading_duration]添加到帖子或页面中,则其应该显示封装在“ span”标签中的“预计阅读时间:XX”。

下一步是根据每分钟预定义的单词数,修改简码以显示阅读页面或帖子所需的实际估计时间。

为此,我们必须使短码代码得到发展。我们需要获取帖子ID(以使用str_word_count()检索帖子中的单词数),并且需要定义人们通常在一分钟内阅读的单词数。假设每分钟200个单词。

/**
 * Register the shortcode
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/
function rc_prds_add_reading_duration_shortcode( $atts, $content = null ) {

	global $post;
	
	// Get Post ID
	$post_id = $post->ID;
	
	// Words read per minute (you can set your own value)
	$words_per_minute = 200;
	
	// Get estimated time
	$estimated_reading_time = rc_prds_get_post_reading_time( $post_id, $words_per_minute );
	
	return '<span class="reading_duration">'.$content.' '.$estimated_reading_time.'</span>';
}

add_shortcode("reading_duration", "rc_prds_add_reading_duration_shortcode");

步骤3:计数器功能

如您所见,有一个未定义的函数:rc_prds_get_post_reading_time()。该函数将返回您阅读帖子所需的估计时间。创建它:

/**
 * Get post reding time
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/
function rc_prds_get_post_reading_time( $post_id, $words_per_minute ){

	// Get post's words
	$content     = get_the_content( $post_id );
	$count_words = str_word_count( strip_tags( $content ) );
	
	// Get Estimated time
	$minutes = floor( $count_words / $words_per_minute);
	$seconds = floor( ($count_words / ($words_per_minute / 60) ) - ( $minutes * 60 ) );
	
	// If less than a minute
	if( $minutes < 1 ) {
		$estimated_time = __( 'Less than a minute', 'rc_prds' );
	}
	
	// If more than a minute
	if( $minutes >= 1 ) {
		if( $seconds > 0 ) {
			$estimated_time = $minutes.__( 'min', 'rc_prds' ).' '.$seconds.__( 'sec', 'rc_prds' );
		} else {
			$estimated_time = $minutes.__( 'min', 'rc_prds' );
		}
	}
	
	return $estimated_time;
}

基本上,该函数计算“ get_the_content()”中的单词数,然后计算阅读帖子所需的分钟和秒数。最后一部分只是根据$ minutes和$ seconds的值显示正确消息的简单方法。

我们可以走得更远,并增加阅读文章所需的时间,但我不确定100%是否必须这样做!

现在,您只需添加以下内容即可完全使用简码:

[reading_duration]Estimated Reading Time:[/reading_duration]

微信二维码

扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答:WP主题推荐,WP网站建设,Google SEO,百度SEO,专业服务器环境搭建


需要提供WordPress主题/插件的汉化服务可以随时联系我们!另外成品WordPress网站以及半成品WordPress网站建设,海外Google SEO优化托管服务,百度SEO优化托管服务,Centos/Debian服务器WP专用环境搭建,WP缓存服务器搭建,我们都是你的首选,拥有多年WP开源程序服务经验,我们一直在坚持客户体验,没有最好,只有更好!
Mac163网站建设,需要帮助点击我!
  • 17713433920
  • 在线客户
  • 联系邮箱
  • 扫一扫,加好友

关闭搜索
购物车
回到顶部