wordpress - 在 WordPress 中获取用户子站点/多站点 URL
问题描述
我正在寻找一种回显用户子站点 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' );
解决方案
此代码将列出当前用户具有管理员角色的站点。
顺便说一下,还有一种获取当前用户 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' );
推荐阅读
- firebase - 如何为 GCP 服务帐户提供正确的权限以更新 Firestore 和 Storage 规则?
- flutter - 带有 jsonserializable 包的 iconData
- php - 从 chart.js 1 升级到 3.5 的问题
- java - Jacoco 忽略类引用
- javascript - 带有 Ajax 表单提交按钮的 Foreach 条件
- encryption - 利萨如曲线可以用于数据压缩或加密吗?
- reactjs - 仅从受控 Material-Ui 自动完成中的选项获取 ID?
- python - 允许用户打开包/库存 - Python
- python - Python使用splat运算符创建具有未知数字参数的函数
- sql - 在 SQL 中过滤上下文和分组依据