这篇文章针对有使用外链设置题图功能,改造后获取不到题图地址的主题
本站使用的 C7V5 主题就有使用外链设置题图的功能,而且我也改造熊掌号了,但是通过外链设置的题图居然获取不到
之前的解决方式是通过后台上传题图,其他的直接上传服务器,然后使用 COS 插件去同步到腾讯云存储
后台上传图片,是占用 ID 的,WordPress 的这一点槽点十足
看了一下之前的代码,它是优先获取文章中的三张图,否则依次获取自定义图片、特色图、文章首图
按理说代码逻辑是对的,没有任何问题,就是拿不到图
来看一下之前的改造代码
if( $values = get_post_custom_values("thumb") ) { //输出自定义域图片地址
$values = get_post_custom_values("thumb");
$src = $values [0];
}
打印这个$values
肯定是为空的,所以肯定获取不到
看一下get_post_custom_values()
这个函数,用于返回文章的自定义字段值的一个函数
因为自定义字段分为,键值 keys 和自定义字段值 values ,有些时候我们需要单独获取这两个值
所以 WordPress 中就派生出了get_post_custom_values()
和get_post_custom_keys()
两个函数
get_post_custom_values()
用于获取当前文章的指定自定义字段的值,并以数组形式返回
get_post_custom_keys()
用于获取当前文章所有的自定义字段的键值
了解了函数是什么作用,就来找一下这个键值,或者去问主题的作者
在footer.php
文件中底部加上以下测试代码,打印一下自定义字段看一下
<?php var_dump(get_post_custom_keys()); ?>
刷新页面,看最底下就有类似于下面这样,然后删掉上面的代码
array(4) {
[0]=> string(10) "_edit_last"
[1]=> string(5) "cover"
[2]=> string(12) "Fanly_Submit"
[3]=> string(10) "_edit_lock"
}
很明显是第二个 cover 啊,拿过去复制粘贴,测试,成功了就是这个 ?
就是替换掉上面代码中的 thumb
if( $values = get_post_custom_values("cover") ) { //输出自定义域图片地址
$values = get_post_custom_values("cover");
$src = $values [0];
}
还有一种,没有题图,我设置了默认图片再加上一个判断
// 没有封面图获取默认图片
if (empty($src)) {
$src = c7v5_get_post_cover();
}
这个就是要主题函数支持了,具体的看你的主题吧
沈唁志,一个PHPer的成长之路!
原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:解决 WordPress 主题结构化改造熊掌号获取不到通过外链设置题图地址的方法