我尝试使用该功能将现有用户添加到博客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);
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;
}