我的wordpress和ucenter通信失败 10

我的wordpress安装在server2003上面,ucenter和discuz也装在上面,现在wordpress安装了ucenter插件,想通过ucenter整合di... 我的wordpress安装在server 2003上面,ucenter和discuz也装在上面,现在wordpress安装了ucenter插件,想通过ucenter整合discuz和wordpress的用户。按照网上的做法,设置了ucenter里面的wordpress应用,里面应用的主url地址写的是:http://182.11.12.32/wordpress/wp-content/plugins/ucenter-integration

ucenter生成的ucenter配置信息是:
define('UC_CONNECT', 'mysql');
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'root');
define('UC_DBPW', '123456');
define('UC_DBNAME', 'mysql');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`mysql`.uc_');
define('UC_DBCONNECT', '0');
define('UC_KEY', '2bf2E5CLHlhMGbIBVzo6tRvaW1H1OmtoQAl5DEE');
define('UC_API', 'http://182.11.12.32/ucenter');
define('UC_CHARSET', 'utf-8');
define('UC_IP', '');
define('UC_APPID', '2');
define('UC_PPP', '20');

然后填了以上内容在wordpress的ucenter插件里面。
回到ucenter应用管理,看到wordpress应用通信失败。
这个wordpress我是安装在内网里。
我曾经在外网安装过wordpress和discuz整合,通信都是成功的。
内网的xampp装的版本是1.8.0,vc9的,
apache版本是2.4.2 mysql版本 是 5.5.25a php版本是 5.4.4
外网装的xampp装的是最新版本的,apache,mysql和php都是最新版本,不知道跟php版本有没有关系。
解决了,有两种解决方案:查看了ucenter/control/admin/app.php里面的代码,发现返回是1才能通信成功,可是后来网上的方法看了,返回确实是1,可能是返回无法解析的字符了,于是按照网上的办法:ucenter 和 wordpress DISCUZ 整合通信失败;另一种方法是在应用ip里写127.0.0.1,前提是wordpress和discuz在同一个主机上,且提交之后ucenter插件的预定义里面api ip也要改
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
超级帅2014
2015-07-28 · TA获得超过303个赞
知道大有可为答主
回答量:1077
采纳率:0%
帮助的人:827万
展开全部
1、 在comments.php评论表单中添加自己想要的字段,如:
<p>
<input type="text" name="tel" id="tel" size="22" tabindex="4" />
<label for="tel">电话</label>
</p>
tabindex 这个属性按照从小到大排,为什么要这样?你可以自己试试….

2、如果评论表单是使用系统自带的,那么请用以下方法添加表单字段,如果不是,请略过

add_filter('comment_form_default_fields','comment_form_add_ewai');
function comment_form_add_ewai($fields) {
$label1 = __( '国家/地区' );
$label2 = __( 'Skype账号' );
$label3 = __( '电话' );
$label4 = __( '传真' );
$label5 = __( '地址' );
$value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false;
$value2 = isset($_POST['skype']) ? $_POST['skype'] : false;
$value3 = isset($_POST['tel']) ? $_POST['tel'] : false;
$value4 = isset($_POST['fax']) ? $_POST['fax'] : false;
$value5 = isset($_POST['address']) ? $_POST['address'] : false;
$fields['guojia'] =<<<HTML
<p>
<label for="guojia">{$label1}</label>
<input id="guojia" name="guojia" type="text" value="{$value1}" size="30" />
</p>
HTML;
return $fields;
}

3、 接收表单字段并写入数据库
在主题目录的 functions.php添加以下代码
add_action('wp_insert_comment','wp_insert_tel',10,2);
function wp_insert_tel($comment_ID,$commmentdata) {
$tel = isset($_POST['tel']) ? $_POST['tel'] : false;
//_tel 是存储在数据库里的字段名字,取出数据的就会用到
update_comment_meta($comment_ID,'_tel',$tel);
}
这两步就可以将数据写入数据库了,不信你试试看
add_action()参数中的10和2分别表示该函数执行的优先级是10(默认值,值越小优先级越高),该函数接受2个参数。

4、在后台显示额外字段
前面两步只是接收和写入到数据库,那么要怎么在后台评论列表中显示呢?将以下代码复制到主题目录的functions.php 中:
add_filter( 'manage_edit-comments_columns', 'my_comments_columns' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 );
function my_comments_columns( $columns ){
$columns[ '_tel' ] = __( '电话' ); //电话是代表列的名字
return $columns;
}
function output_my_comments_columns( $column_name, $comment_id ){
switch( $column_name ) {
case "_tel" :
echo get_comment_meta( $comment_id, '_tel', true );
break;
}
如果要在前台的留言列表中调用,就用以下代码,_tel就是你在数据库中存储的字段名字
<?php
$tel = get_comment_meta($comment->comment_ID,'_tel',true);
if( !empty($tel)){
echo "电话".$tel;
}
?>

5、 大功告成,看看后台的评论列表,是不是多了一列电话,那样的话就没错了。

6、如果要移除某一个自带的表单字段,可以使用以下代码
function tel_filtered($fields){
if(isset($fields['tel']))
unset($fields['tel']);
return $fields;
}
add_filter('comment_form_default_fields', 'tel')
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式