倡萌

添加自定义回复,提示成功,但是数据库和列表都没有数据

倡萌 - 8 年 前

1.使用“数据检测和清理”创建了数据表
2.添加自定义回复,返回信息说成功,但是自定义回复列表没有显示,查看数据表,也没有相应的数据
3.服务器环境是军哥的 lnmp ,PHP7,开启了memcached 和 OPcache,此外还使用了 Hyper Cache 插件:https://wordpress.org/plugins/hyper-cache/

究竟问题出在哪了呢?

9条回复

Denis | 邓鸿华
Denis | 邓鸿华 - 8 年 前

那你关掉 Hyper Cache 看看!

倡萌
倡萌 - 8 年 前

关掉 Hyper Cache,问题依旧,总之就是没有写入数据库,会不会是 php 7 的原因?

还有,给个建议:添加一个选项,可以设置排除某些文章类型(custom post type),现在的情况似乎是返回所有文章类型的结果

Denis | 邓鸿华
Denis | 邓鸿华 - 8 年 前

你按照这里 debug
http://blog.wpjam.com/m/how-to-debug-wordpress/
看看 debug.log 里面有什么相应的错误!

倡萌
倡萌 - 8 年 前

开启debug看过了,就只有一些简单的错误提示:
[22-Feb-2016 04:39:45 UTC] PHP Notice: Trying to get property of non-object in F:\wwwroot\wdnews.com\wp-content\plugins\weixin-robot-advanced\weixin-robot-custom-reply.php on line 213
[22-Feb-2016 04:39:45 UTC] PHP Notice: Trying to get property of non-object in F:\wwwroot\wdnews.com\wp-content\plugins\weixin-robot-advanced\weixin-robot-custom-reply.php on line 214
[22-Feb-2016 04:39:45 UTC] PHP Notice: Trying to get property of non-object in F:\wwwroot\wdnews.com\wp-content\plugins\weixin-robot-advanced\weixin-robot-custom-reply.php on line 215
[22-Feb-2016 04:39:45 UTC] PHP Notice: Trying to get property of non-object in F:\wwwroot\wdnews.com\wp-content\plugins\weixin-robot-advanced\weixin-robot-custom-reply.php on line 216
[22-Feb-2016 04:39:45 UTC] PHP Notice: Trying to get property of non-object in F:\wwwroot\wdnews.com\wp-content\plugins\weixin-robot-advanced\weixin-robot-custom-reply.php on line 217
[22-Feb-2016 04:39:45 UTC] PHP Notice: Trying to get property of non-object in F:\wwwroot\wdnews.com\wp-content\plugins\weixin-robot-advanced\weixin-robot-custom-reply.php on line 218

这些也就是数据库没有数据才提示的。

问题还是添加的时候,无法写入数据库。以上为本地环境测试,当然了,我今天也在新的服务器配置了新的环境 php 5.6.18 测试 ,禁用掉其他所有创建,但是依旧没办法添加数据,真是奇葩了。

倡萌
倡萌 - 8 年 前

看了下插件的代码:

$type = stripslashes( trim( $_POST['type'] ));
$match = stripslashes( trim( $_POST['match'] ));
$keyword = stripslashes( trim( $_POST['keyword'] ));
$reply = stripslashes( trim( $_POST['reply'] ));
$status = isset($_POST['status'] )?1:0;
$time = stripslashes( trim( $_POST['time'] ));

$data = compact('type','keyword','match','reply','time','status');

if(empty($id)){
$wpdb->insert($wpdb->weixin_custom_replies,$data);
//$id = $wpdb->insert_id;
$succeed_msg = '添加成功';
}else{
$current_user = $user = wp_get_current_user();
$wpdb->update($wpdb->weixin_custom_replies,$data,array('id'=>$id));
$succeed_msg = '修改成功';
}

问题应该就在 $wpdb->insert($wpdb->weixin_custom_replies,$data); 如法插入数据

Denis | 邓鸿华
Denis | 邓鸿华 - 8 年 前

如果没写入,在 debug.log 里面会有相关的错误代码,如果没有,那只能你自己 debug 了!

倡萌
倡萌 - 8 年 前

问题应该出在我的主题上了,要优化下主题,多谢回复

倡萌
倡萌 - 8 年 前

总算找到原因了,是 global $id 冲突了,在 weixin-robot-custom-reply.php ,使用了 global $id,这个可能和我主题使用的 global $id 冲突了,我将 $id 改为 $wxid 就OK了,建议老大修改下,以免存在这个可能的冲突。

倡萌
倡萌 - 8 年 前

还有自定义菜单也是一样的问题

我要回复

暂时不支持网页回复,请安装