我正在寻找一种方法来回显用户子站点的URL,但似乎仅通过以下功能回显该帐户的网络和子站点,我可以改善什么?谢谢!
// Add Shortcode
function blog_url_shortcode() {
if(is_user_logged_in()) {
global $current_user;
$blogs = get_blogs_of_user( $current_user->id );
if($blogs) {
foreach ( $blogs as $blog ) {
echo '<li><a href="http://' . $blog->domain . $blog->path .'">' . $blog->blogname . '</a></li>';
}
}
}
}
add_shortcode( 'blog_url', 'blog_url_shortcode' );
答案 0 :(得分:0)
此代码将列出当前用户在其中具有管理员角色的站点。
此外,还有一种获取当前用户ID并获取您应该使用的网站URL的新方法。由于获取当前用户ID的方式,您的代码产生了PHP通知。
function blog_url_shortcode() {
if( is_user_logged_in()) {
$current_user_id = get_current_user_id();
$blogs = get_blogs_of_user( $current_user_id );
foreach ( $blogs as $blog_id => $blog ) {
$user = new WP_User( $current_user_id, '', $blog_id );
if ( in_array( 'administrator', $user->roles ) ) {
echo '<li><a href="' . esc_url( $blog->siteurl ) . '">' . esc_html( $blog->blogname ) . '</a></li>';
}
}
}
}
add_shortcode( 'blog_url', 'blog_url_shortcode' );