wordpress的get
wordpress可以设置自定义字段,方便扩展功能,wordpress利用巧妙的数据库表设计达到这一目的,posts表存放文章,页面和附件等,与之对应的postmeta表用来存储自定义的字段,采用post_id,key,value这样的设计来存放自定义字段的值。
get_post_meta函数用法:get_post_meta($post_id, $key, $single);该函数有3个基本参数:$post_id —— 所检索数据的文章的ID,使用 $post->ID 来获取文章的ID。
$key —— 要检索的自定义字段名称$single —— 这是一个布尔值,如果设置为 true ,将直接以字符串的形式返回字段的值;一个自定义字段可以填写多个值,如果设置为 false,将返回一个数组 array 来显示这多个值。
此函数定义在wordpress的post.php中:
wordpress 主页显示摘要代码要怎么改呢
方法一:修改WordPress文件。
优点:操作简单。
缺点:博客升级后会失效,需重新修改。
找到WorsPress目录wp-includes下formating.php文件,查找unction wp_trim_excerpt($text)函数,再找到excerpt_length,默认值是55,修改成需要的值即可。
方法二:自定义函数,修改主题function.php文件。
(楼主推荐)优点:一劳永逸。
缺点:换主题后需要重新设置。
The_excerpt()在Wordpress中,默认是截取55个英文单词的,但是在中文中却是无法截取到55个汉字。
原因是因为在wordpress的the_excerpt()函数中用到了1$text = implode(' ', $words);在php中是用空格来截取字数的,而我们汉字就杯具了,因为我们汉字是相连的,没有空格来区分,所以在使用中文的时候,经常地我们使用the_excerpt()函数的时候,截取出来的结果是全文!对于这个情况我们可以用PHP函数mb_substr去解决。
所以在Wordpress中可以打开主题中的funtions.php,加入下面的代码:12345function chinese_excerpt($text, $lenth=100) {$text = mb_substr($text,0, $lenth);return $text;}add_filter('the_excerpt', ' chinese_excerpt ');我这里设置默认的截取长度是100个字符,50个汉字。
可以在上面的代码中的$lenth=100设定为任意的截取长度。
或者直接使用中文截取法,加入如下代码12345function custom_excerpt_length( $length ) {return 200;}add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );200为字数,可以修改为自己的值。
需要安装服务器打开php mb_string扩展。
1、安装php-mbstrin扩展,终端执行。
sudo yum install php-mbstring。
2、切换root用户。
sudo -s3、修改php.ini,终端执行。
echo 'extension=mbstring.so' >>/etc/php.ini 4、重启web服务器。
apache:sudo service httpd restartnginx:sudo service nginx reload
求某个字符串的子串
f函数编写有错误,思路不太对,sub放的是从下标n-1开始的m个字符,但是这些字符在sub数组中应该是从0 下标开始存放。
我将程序作了些修改;#includechar *f(char *str ,int n,int m){ char sub[10]; int i,j=0;if((n+m)<=10)for(i=n-1;j<m;i++){ sub[j++]=str[i];}sub[j]='\0';return sub;}main(){ char str[10],*sub; int n,m; printf("请输入字符串:"); gets(str); printf("请输入子串从第几个字符开始长多少"); printf("n="); scanf("%d",&n); printf("m="); scanf("%d",&m); sub=f(str,n,m); puts(sub);}main函数中将字符串输入函数放到前面,因为如果放在后面,执行printf("m="); scanf("%d",&m);时,输入一个整数后我们按回车确认m的值输入结束,而gets会从整数之后的回车开始作为字符串的内容接收,会造成字符串接收数据错误。
而f函数中,本人认为已经知道要截取字符串的起始位置和字符个数,只需逐个存放到sub数组中即可。
j变量是sub数组的下标。
如何开发一个WordPress插件
按阅读量排列,可安装插件 wp-postviews ,该插件提供了热门阅读文章列表调用代码: 或者 或者 //显示最热门文章//显示某个或某些目录下最冷门文//显示某个或某些目录下最热门文章//显示指定标签下的最热门文章//显示指定标签下的最冷门文章//显示全站文章总共被浏览过多少次 特定时间内阅读量: ### Function: Get TimeSpan Most Viewedfunction get_timespan_most_viewed($mode = '', $limit = 20, $days = 30, $display = true) {global $wpdb, $post;$limit_date = current_time('timestamp') - ($days*86400);$limit_date = date("Y-m-d H:i:s",$limit_date);$where = '';$temp = '';if(!empty($mode) && $mode != 'both') {$where = "post_type = '$mode'";} else {$where = '1=1';}$most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date '".$limit_date."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER BY views DESC LIMIT $limit");if($most_viewed) {foreach ($most_viewed as $post) {$post_title = get_the_title();$post_views = intval($post->views);$post_views = number_format($post_views);$temp .= "$post_title - $post_views ".__('views', 'wp-postviews')."";}} else {$temp = ''.__('N/A', 'wp-postviews').''."\n";}if($display) {echo $temp;} else {return $temp;}} $days这个参数是多长时间内发表的文章,设置为30,就是1个月的热门文章。
转载请注明出处51数据库 » wordpress截取字符串