1. David Wu首页
  2. WordPress
  3. WordPress建站教程

WordPress 熊掌号精选问答页面改造代码-WordPress建站教程

前面子凡已经分享过非常完整的熊掌号精选问答页面改造的示例代码,那么作为第一批尝鲜吃螃蟹的人,子凡的泪雪网目前已经积极在做数据推送,并且数据目前相关数据也在开始生效,同时也作为 WordPress 的深度开发爱好者,子凡决定分享一下 WordPress 熊掌号精选问答页面的改造代码。

前面子凡已经分享过非常完整的熊掌号精选问答页面改造的示例代码,那么作为第一批尝鲜吃螃蟹的人,子凡的泪雪网目前已经积极在做数据推送,并且数据目前相关数据也在开始生效,同时也作为 WordPress 的深度开发爱好者,子凡决定分享一下 WordPress 熊掌号精选问答页面的改造代码。

WordPress 熊掌号精选问答

关于熊掌号相关的改造代码,其实几乎是千篇一律,并且相似度非常高,主要本来就是熊掌号,所以都是根据熊掌号接入的页面改造的基础代码拓展而来,而熊掌号精选问答基本就是代码字段最多的一个功能了,但其实也真的非常简单,并且开发熊掌号精选问答的 JSON-LD 结构化数据字段也都需要强制被指定的,并不是每一个问答都不同,下面子凡分享给大家看看。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
global $wp;$current_url = home_url(add_query_arg(array(),$wp->request));
if($current_url)echo \'<link rel="canonical" href="\'.$current_url.\'" />\'."\\n";
$xzh_title=$xzh_upDate=$xzh_pubDate=$xzh_lrDate=$images=$description=$xzh_data=\'\';
if(is_single()||is_page()){
	$xzh_title = get_the_title();
	$current_url = get_the_permalink();
	$images = \'"images": ["\'.fanly_post_imgs().\'"],\'."\\n";
	$description = \'"description": "\'.fanly_custom_excerpt().\'",\'."\\n";
	$xzh_pubDate = \'"pubDate": "\'.get_the_time(\'Y-m-d\\TH:i:s\').\'",\'."\\n";
	if(get_comments(array(\'post_id\'=>$GLOBALS[\'post\']->ID,\'status\'=>\'approve\',\'count\'=>true))){
		$xzh_upDate = \'"upDate": "\'.get_the_modified_time(\'Y-m-d\\TH:i:s\').\'",\'."\\n";
		if(in_category(array(1377))){//熊掌号问答内容,1377 为相关问答分类目录 ID,多个可用英文,逗号分隔。
			$xzh_lrDate = \'"lrDate": "\'.date(\'Y-m-d\\TH:i:s\',strtotime(get_comments(array(\'post_id\'=> $GLOBALS[\'post\']->ID,\'status\' => \'approve\',\'number\'=>1))[0]->comment_date)).\'",\'."\\n";
		}else{
			$xzh_lrDate = \'"lrDate": "\'.date(\'Y-m-d\\TH:i:s\',strtotime(get_comments(array(\'post_id\'=> $GLOBALS[\'post\']->ID,\'status\' => \'approve\',\'number\'=>1))[0]->comment_date)).\'"\'."\\n";
		}
	}else{
		if(in_category(array(1377))){//熊掌号问答内容
			$xzh_upDate = \'"upDate": "\'.get_the_modified_time(\'Y-m-d\\TH:i:s\').\'",\'."\\n";
		}else{
			$xzh_upDate = \'"upDate": "\'.get_the_modified_time(\'Y-m-d\\TH:i:s\').\'"\'."\\n";
		}
	}
 
//熊掌号问答内容 S
if(in_category(array(1377))){//1377 为相关问答分类目录 ID,多个可用英文,逗号分隔。
	$headline = strtr($xzh_title,array(\',\'=>\'\',\'?\'=>\'\',\'!\'=>\'\',\',\'=>\'\',\'!\'=>\'\',\'?\'=>\'\',\'、\'=>\'\',\'“\'=>\'\',\'”\'=>\'\'));
	switch( get_the_author_meta(\'user_level\',$GLOBALS[\'post\']->post_author) ){
		case 10: $jobTitle = \'主编\';  break;  //管理
		case 7: $jobTitle = \'编辑\';  break;  
		case 2: $jobTitle = \'作者\';  break;  
		case 1: $jobTitle = \'投稿\';  break;  
		case 0: $jobTitle = \'用户\';  break;  
	}
   $xzh_data = \'"data": {
	"WebPage": {
		"headline": "\'.$headline.\'",
		"fromSrc": "泪雪网",
		"domain": "科技",
		"category": [
			"问答"
		],
	},
	"Question": [
		{
			"acceptedAnswer": "\'.fanly_custom_excerpt().\'"
		}
	],
	"ImageObject": [
		{
			"contentUrl": "\'.fanly_post_imgs().\'",
			"scale": "5:2"
		}
	],
	"Author": [
		{
			"name": "\'.get_the_author_meta(\'display_name\',$GLOBALS[\'post\']->post_author).\'",
			"memberOf":
				{
					"legalName": "泪雪网"
				},
			"jobTitle": ["\'.$jobTitle.\'"],
			"headPortrait": "\'.get_avatar_url( get_the_author_meta(\'email\') ).\'"
		}
	]
}\';
}
//熊掌号问答内容 E
}
if($current_url && $xzh_title && $xzh_pubDate){
echo \'<script type="application/ld+json">{
"@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
"@id": "\'.$current_url.\'",
"appid": "你的熊掌号 APPID 填在这里",
"title": "\'.$xzh_title.\'",\';
echo $images.$description.$xzh_pubDate.$xzh_upDate.$xzh_lrDate.$xzh_data;
echo \'}</script>\';
}
 
//以下代码可以添加到当前主题 functions.php 文件中
//获取文章中的图 last update 2018/01/22
function fanly_post_imgs(){
	global $post;
	$src = \'\';
	$content = $post->post_content;  
	preg_match_all(\'/<img .*?src=[\\"|\\\'](.+?)[\\"|\\\'].*?>/\', $content, $strResult, PREG_PATTERN_ORDER);  
	$n = count($strResult[1]);  
	if($n >= 3){
		$src = $strResult[1][0].\'","\'.$strResult[1][1].\'","\'.$strResult[1][2];
	}elseif($n >= 1){
		$src = $strResult[1][0];
	}
	return $src;
}
//获取文章/页面摘要
function fanly_custom_excerpt($len=120){
	if ( is_single() || is_page() ){
		global $post;
		if ($post->post_excerpt) {
			$excerpt  = $post->post_excerpt;
		} else {
			if(preg_match(\'/<p>(.*)<\\/p>/iU\',trim(strip_tags($post->post_content,"<p>")),$result)){
				$post_content = $result[\'1\'];
			} else {
				$post_content_r = explode("\\n",trim(strip_tags($post->post_content)));
				$post_content = $post_content_r[\'0\'];
			}
			$excerpt = preg_replace(\'#^(?:[\\x00-\\x7F]|[\\xC0-\\xFF][\\x80-\\xBF]+){0,0}\'.\'((?:[\\x00-\\x7F]|[\\xC0-\\xFF][\\x80-\\xBF]+){0,\'.$len.\'}).*#s\',\'$1\',$post_content);
		}
		return str_replace(array("\\r\\n", "\\r", "\\n"), "", $excerpt);
	}
}
?>

嗯,对,以上这么这么长的代码就是关于 WordPress 改造熊掌号精选问答的代码,但是以上代码仅仅只是针对图文的问答,也就是说不支持视频或者音频类的问答,同时以上的部分代码是中的部分字段都是固定的,例如熊掌号 ID,站点名称,领域等,根据实际情况填写修改。

当然以上代码也只能供大家参考和快速接入改造熊掌号专业问答,但是最后还需要的就是主动提交,当然子凡也开发了相关的熊掌号推送数据插件,但是目前免费版的 Fanly Submit 熊掌号推送插件还并没有支持熊掌号精选问答的专业问答推送,不过子凡目前自己用于泪雪网的插件也升级开发过,目前还在测试阶段,如果有人需要可以联系我。

更多关于 WordPress 优化及疑问可以添加 QQ 群:255308000

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/wordpress-xzh-ask.html

原创文章,作者:泪雪博客,如若转载,请注明出处:https://www.davidwu.net/archives/129442

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注