无法将WP_ERROR转换为字符串

时间:2018-04-03 作者:GamerBanaan

我尝试使用该功能将现有用户添加到博客add_user_to_blog($blog_id, $user_id, $role). 我使用的代码提供了:

可捕获的致命错误:在C:\\wamp64\\www\\wordpress\\WP includes\\ms函数中,类WP\\u error的对象无法转换为字符串。php第206行。

我需要做些什么才能让这一切顺利进行?

这是我的代码:

$domain = "";
$path = "localhost/wordpress/wp_4";
$title = "WP_4";
$user_id = 1;
$network_id = get_main_network_id();
$role = \'editor\';
$new_blog_id = wpmu_create_blog($domain, $path, $title, $user_id, $network_id);
add_user_to_blog($new_blog_id, $network_id, $role);

2 个回复
SO网友:Krzysiek Dróżdż

您的代码几乎没有问题。

首先,让我们看看wpmu_create_blog 功能:

wpmu_create_blog(
    string $domain,
    string $path,
    string $title,
    int $user_id,
    array $meta = array(),
    int $network_id = 1
)
所以你用错了。第五个论点是$meta 你把$network_id 在那里。。。

另一个问题是此函数可能返回int (新站点的ID)或WP\\U错误(如果发生错误)。

你忽视了这一点,认为它总是以成功告终。这会导致错误-函数返回WP_Error 你把它当作int.

SO网友:Mostafa Soufi

您应该使用is_wp_error()

<?php
$domain = "";
$path = "localhost/wordpress/wp_4";
$title = "WP_4";
$user_id = 1;
$network_id = get_main_network_id();
$role = \'editor\';
$new_blog_id = wpmu_create_blog($domain, $path, $title, $user_id, $network_id);

if(is_wp_error($new_blog_id)) {
    echo $new_blog_id->get_error_message();
    return;
}

$new_user = add_user_to_blog($new_blog_id, $network_id, $role);

if(is_wp_error($new_user)) {
    echo $new_user->get_error_message();
    return;
}

结束

相关推荐