Je voudrais créer une règle de réécriture personnalisée qui prendra l'URL:
http://domain/submit-project/add
mais afficher
http://domain/wp/wp-admin/post-new.php?post_type=project
Y a-t-il un moyen de faire ça? J'essaie d'ajouter la règle de réécriture afin que dans le functions.php
de mon thème
add_action( 'init', 'add_custom_rules' );
function add_custom_rules() {
add_rewrite_rule(
"^submit-project/add",
"/wp/wp-admin/post-new.php?post_type=project",
"top");
}
J'ai essayé de supprimer les règles, mais cela semble toujours entrer dans une sorte de boucle qui revient toujours à la page de "connexion".
Modifier
submit-project
et donc l’URL: http://domain.com/submit-project
au cas où cela aurait de l’importance.En général, cela est possible, mais vous devez définir ADMIN_COOKIE_PATH
dans votre wp-config.php
avec la valeur /
, ce qui pourrait entraîner des problèmes de sécurité.
Tout d’abord, définissez ces règles de réécriture dans votre .htaccess juste avant la règle de réécriture de wordpress:
# Make sure, there is a trailing slash
RewriteRule ^submit-project/add$ submit-project/add/ [R=301,L]
# mask the urls
RewriteRule ^submit-project/add/$ /wp/wp-admin/post-new.php [L,QSA]
RewriteRule ^submit-project/add/post.php?$ /wp/wp-admin/post.php [L,QSA]
# this is the wordpress rule:
RewriteRule . /index.php [L]
Maintenant, vous devez définir la constante dans le wp-config.php
define( 'ADMIN_COOKIE_PATH', '/' );
Je recommande de ne pas utiliser ceci sur un site productif. Envisagez d’offrir un formulaire d’entrée spécial dans le frontal en utilisant des codes abrégés ou quelque chose de moins invasif que l’exemple présenté.