Wordpressマルチサイトでは、フロントエンドからログインして自分の特定のブログにリダイレクトされるユーザーに "redirect-multisite-user-to-their-own-site"プラグインを使用しています。ただし、このプラグインはダッシュボード(mulstisite.com/users-site/wp-adminなど)ではなく、ユーザーのブログのホームページ(例:mulstisite.com/users-site)にのみリダイレクトされます。ユーザーをダッシュボードにリダイレクトする必要があります。このWordpressリダイレクトプラグインの "siteurl"の最後にスラッグを追加するにはどうすればよいですか?
プラグインのコード(下記参照、完全に含まれています)には、wp_redirect($user_target_site->siteurl);
があります。私はまだよくPHPを知らないし、何とか$user_target_site->siteurl
+ /wp-admin
に行く必要があります。どうすればこれを達成できますか?私はプラグインを編集して自分自身のプラグインを作成して、プラグインの更新によって上書きされないようにしています。
<?php
/*
Plugin Name: Redirect multisite user to their own site
Plugin URI: https://wordpress.org/plugins/redirect-multisite-user-to-their-own-site/
Description: If the current user in a multisite environment accesses a subsite to which access has not been granted, then redirect the user back to their own site. This plugin requires PHP 5.3 or newer because it uses PHP namespaces.
Author: Mark Howells-Mead
Version: 1.1.1
Author URI: https://www.permanenttourist.ch/
Text Domain: redirect-multisite-user-to-their-own-site
*/
namespace MHM\MultisiteRedirectuser;
class Plugin
{
public function __construct()
{
load_plugin_textdomain('redirect-multisite-user-to-their-own-site');
if (is_multisite()) {
add_action('parse_request', array($this, 'checkAccess'));
}
}
public function checkAccess()
{
global $current_user, $wpdb;
$current_site_id = (int) $wpdb->blogid;
$user_sites = get_blogs_of_user($current_user->ID);
if (is_array($user_sites)) {
switch (count($user_sites)) {
case 0:
if (is_user_logged_in()) {
do_action('redirect-multisite-user-to-their-own-site/no-sites', $current_user, $current_site_id);
}
break;
case 1:
$user_target_site = array_values($user_sites)[0];
if ((int) $user_target_site->userblog_id !== $current_site_id) {
do_action('redirect-multisite-user-to-their-own-site/redirecting', $current_user, $current_site_id, $user_target_site->siteurl);
wp_redirect($user_target_site->siteurl);
exit;
}
break;
default:
if (!array_key_exists($current_site_id, $user_sites)) {
do_action('redirect-multisite-user-to-their-own-site/not-allowed', $current_user, $current_site_id, $user_sites);
}
break;
}
}
}
}
new Plugin();