改造代码获取文章图片是从杨小杰博客搬运过来的,并做了一些小的改动,感谢大佬们的分享。
首先在打开网站模版目录/content/templates/,找到header.php文件,
打开后在
标签内添加如下代码:再找到模版目录下的echo_log.php;在 前面添加如下代码:
"@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
"@id": "<?php echo Url::log($logid);?>",
"appid": "熊掌号id",
"title": "<?php echo $log_title; ?>",
"images": [
"<?php if(picthumb($logid)){echo picthumb($logid);}else{echo 'https://www.nswin.cc/content/templates/FLY/img/about.jpg';}?>"
],
"description": "<?php echo $site_description; ?>",
"pubDate": "<?php echo gmdate('Y-m-d\TH:i:s', $date);?>",
"upDate": "<?php echo gmdate('Y-m-d\TH:i:s', $date);?>",
"lrDate": "<?php echo gmdate('Y-m-d\TH:i:s', $date);?>"
}
当文章有图片时则获取文章第一张图片做熊掌号文章图片,若是无插图文章则显示默认图片。
https://www.nswin.cc/content/templates/FLY/img/about.jpg为默认图片地址,自己替换成你的即可。
然后需要去模版公用核心函数module.php中添加一个获取第一张图片的function,代码如下
// 公用核心函数里面的数据库连接
// 这个连接方式 $db = MySql::getInstance();
//只适合PHP7.0以下版本不包括PHP7.0
// 如需要用PHP7.0版本或PHP7.0以上版本的
//请把 $db = MySql::getInstance();
//更换成 $db = Database::getInstance();
PHP7.0以下版本使用的公用核心函数<?php
//getimage
function picthumb($blogid) {
$db = MySql::getInstance();
$sql = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$blogid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1";
// die($sql);
$imgs = $db->query($sql);
while($row = $db->fetch_array($imgs)){
$pict.= ''.BLOG_URL.substr($row['filepath'],3,strlen($row['filepath'])).'';
}
return $pict;
}
?>
PHP7.0以上版本使用的公用核心函数<?php
//getimage
function picthumb($blogid) {
$db = Database::getInstance();
$sql = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$blogid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1";
// die($sql);
$imgs = $db->query($sql);
while($row = $db->fetch_array($imgs)){
$pict.= ''.BLOG_URL.substr($row['filepath'],3,strlen($row['filepath'])).'';
}
return $pict;
}
?>
然后你可以选择一个文章测试查看源代码,标题、地址、摘要、图片等地址输出是否正确即可。
改造完成,配合本文分享的熊掌号文章提交插件使用
需要登录才能下载