万事屋是支持内容摘要同步到新浪微博的,用的是水脉的插件。
不过作者现在发展CPS和小程序去了,微博同步插件几年没更新,PHP7.x还好,更新的php8.x就总有报错。虽然可以顶着bug运行,但随着万事屋流量上升,这错误一分钟高达几十上百次,吃不消了。改!
主要是修改插件中的“wp-functions.php ”文件:
<?php
/**
* 自定义函数
*/
if (!function_exists('mb_substr')) {
function mb_substr($str, $start = 0, $length = 0, $encode = 'utf-8') {
$encode_len = ($encode == 'utf-8') ? 3 : 2;
for($byteStart = $i = 0; $i < $start; ++$i) {
$byteStart += ord($str[$byteStart]) < 128 ? 1 : $encode_len;
if ($str[$byteStart] == '') return '';
}
for($i = 0, $byteLen = $byteStart; $i < $length; ++$i)
$byteLen += ord($str[$byteLen]) < 128 ? 1 : $encode_len;
return substr($str, $byteStart, $byteLen - $byteStart);
}
}
if (!function_exists('mb_strlen')) {
function mb_strlen($str, $encode = 'utf-8') {
return ($encode == 'utf-8') ? strlen(utf8_decode($str)) : strlen($str);
}
}
if (!function_exists('mb_strimwidth')) {
function mb_strimwidth($str, $start, $width, $trimmarker, $encode = 'utf-8') {
return mb_substr($str, $start, $width, $encode) . $trimmarker;
}
}
// ... (省略未修改的部分)
// 修改后的 media_cn 函数
function media_cn($id = '') {
$name = array(
'weixin' => '微信',
'qzone' => 'QQ',
'sina' => '新浪微博',
// 其他键值对保持不变
'taobao' => '淘宝网',
'alipay' => '支付宝',
'renren' => '人人网',
'kaixin001' => '开心网',
'facebook' => 'Facebook',
'twitter' => 'Twitter',
'google' => 'Google',
'yahoo' => 'Yahoo',
'linkedin' => 'LinkedIn',
'github' => 'GitHub',
'baidu' => '百度',
'360' => '360',
'msn' => 'Microsoft',
);
if ($id) {
// 检查数组键是否存在
return isset($name[$id]) ? $name[$id] : '未知';
} else {
return $name;
}
}
// ... (剩余的函数保持不变)
?>
我在这里只展示了修改的 media_cn 函数部分。其他部分的代码保持不变。你需要将这个修改后的 media_cn 函数替换到你的 wp-functions.php 文件中相应的位置。
对了,保存后又跳出个问题,大概在修改后的1112行左右:
} elseif ($wptm_connect['weixin'] && $wptm_connect['wx_login'] && is_weixin_client()) { // 微信强制登录
需要修改这段代码来检查 $wptm_connect 数组中是否存在 ‘weixin’ 和 ‘wx_login’ 键。修改后的代码如下:
} elseif (isset($wptm_connect['weixin']) && $wptm_connect['weixin'] && isset($wptm_connect['wx_login']) && $wptm_connect['wx_login'] && is_weixin_client()) { // 微信强制登录
修改说明
- 使用 isset():我们使用 isset() 函数来检查 $wptm_connect 数组中是否存在 ‘weixin’ 和 ‘wx_login’ 键。这样可以避免访问不存在的数组键时产生的警告。
- 逻辑检查:在确认键存在后,我们再进行值的逻辑检查,确保只有当键存在且值为真时,才执行后续的条件。
好了,保存后插件正常运行,目前十分钟了,没见网站日志里有相关插件保存,舒服了。
没有回复内容