WP Manifestindependent plugin directory
manifest / security / wp_accessadmin

WP Access Admin

WordPress plugin — Fixes login/logout/admin URLs when WordPress is installed in a subdirectory (Bedrock pattern)

★ 0stars
v1.0.1latest · 5mo ago

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/domoquick/wp_accessadmin/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WordPress plugin — Corrige les URLs d'authentification lorsque WordPress est installé dans un sous-répertoire (pattern Bedrock).

Problème résolu

En Bedrock, site_url() inclut le sous-répertoire d'installation (ex. /cms/), tandis que home_url() pointe sur la racine publique. WordPress core et certains plugins construisent leurs URLs d'authentification sur site_url(), ce qui génère un préfixe non voulu dans les liens et les redirections.

Cas concrets :

  • L'action du formulaire de connexion pointe vers /cms/wp-login.php au lieu de /wp-login.php
  • Les plugins de login personnalisé (ex. wp-hide) génèrent /cms/[hash] → 404 côté nginx

Solution

Ce plugin filtre en dernier recours (PHP_INT_MAX) :

Filtre WordPress Scope
login_url Lien vers la page de connexion
logout_url Lien de déconnexion
lostpassword_url Lien mot de passe oublié
site_url (schemes login, login_post) Action du formulaire de connexion WordPress core

Tous les autres appels site_url() (scheme admin, https, http, etc.) sont laissés intacts — wp-admin reste sous site_url().

Le plugin est sans effet si site_url() === home_url() (installation WordPress standard sans sous-répertoire).

Compatibilité

Installation

Plugin classique

Copier le dossier dans wp-content/plugins/ et activer depuis l'administration WordPress.

Bedrock — mu-plugin (recommandé)

// public/app/mu-plugins/wp-accessadmin-loader.php
require_once __DIR__ . '/../plugins/wp-accessadmin/wp-accessadmin.php';

Le chargement en mu-plugin garantit que les filtres sont enregistrés avant tout autre plugin.

Configuration Bedrock

Aucune configuration requise côté plugin. En revanche, l'infrastructure doit être adaptée :

1. Désactiver le faux-cron HTTP

Ajouter dans config/environments/production.php et config/environments/development.php :

Config::define('DISABLE_WP_CRON', true);

2. Bloquer l'accès public à wp-cron.php (nginx)

location = /cms/wp-cron.php {
    deny all;
    access_log    off;
    log_not_found off;
}

3. Remplacer par un vrai cron système

Via WP-CLI dans un container ou un crontab :

*/5 * * * * wp --allow-root --path=/var/www/html/public/cms cron event run --due-now --quiet

Ou via un service Docker dédié (voir docker-compose.yml de l'infra).

Développement

# Tests
make test

# Stack vendor mutualisée requise (si absente)
cd ../_stacks/wordpress6 && composer install

12 tests, 12 assertions.

Licence

MIT

Releases

1 release.

Tag
Published
v1.0.1 latest
May 28, 2026 5mo ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.