This question already has answers here: Adding admin-ajax.php to the frontend. Good or bad idea? (3 answers) Can I rename the wp-admin folder? (13 answers) Closed 6 years ago.admin管理员组文章数量:1025227
I'm currently looking for a way to change / hide the default WordPress admin-ajax.php
URL. I want to do this to remove the admin
from it to prevent misunderstandings by my customers when I use the AJAX URL to read for example a file from my server. In this case, the URL has the admin prefix which is a bit confusing.
So in result the AJAX URl should looks like this: ajax.php
I've searched a bit but I can't find any helpful informations. Because of this I can't show you any related code. But when I got it, I'll update my question to help other people.
Maybe there is someone who did this before and can give me some helpful tips so that I can implement this asap? This would be very awesome!
This question already has answers here: Adding admin-ajax.php to the frontend. Good or bad idea? (3 answers) Can I rename the wp-admin folder? (13 answers) Closed 6 years ago.I'm currently looking for a way to change / hide the default WordPress admin-ajax.php
URL. I want to do this to remove the admin
from it to prevent misunderstandings by my customers when I use the AJAX URL to read for example a file from my server. In this case, the URL has the admin prefix which is a bit confusing.
So in result the AJAX URl should looks like this: ajax.php
I've searched a bit but I can't find any helpful informations. Because of this I can't show you any related code. But when I got it, I'll update my question to help other people.
Maybe there is someone who did this before and can give me some helpful tips so that I can implement this asap? This would be very awesome!
Share Improve this question asked Apr 5, 2019 at 19:46 Johnny97Johnny97 2147 silver badges18 bronze badges 1- 2 Looks like wordpress.stackexchange/questions/83650/… might solve that. – fuxia ♦ Commented Apr 5, 2019 at 20:45
2 Answers
Reset to default 5It's not as hard to solve as one might think... If only all plugins/themes respect best practices.
If they do, then all links to admin-ajax.php
are generated with admin_url
function. And this function has a hook inside, so we can modify the url it returns:
// This will change the url for admin-ajax.php to /ajax/
function modify_adminy_url_for_ajax( $url, $path, $blog_id ) {
if ( 'admin-ajax.php' == $path ) {
$url = site_url('/ajax/');
}
return $url;
}
add_filter( 'admin_url', 'modify_adminy_url_for_ajax', 10, 3 );
So now we have to teach WordPress to process such requests. And we can use .htaccess
to do so. This line should do the trick:
RewriteRule ^/?ajax/?$ /wp-admin/admin-ajax.php?&%{QUERY_STRING} [L,QSA]
So now, all the AJAX requests should be visible as /ajax/
and not as wp-admin/admin-ajax.php
The googles got me to this place, which does it with a plugin. https://github/devgeniem/wp-no-admin-ajax
Since it is open source, you might look at how they do it. Or just use the plugin.
No experience with it. "Security by obscurity" is not one of my things to do. But their process may work for you. If you are planning on copying the file elsewhere, be aware you may need to re-copy after WP updates.
Added: I like Krzysiek Dróżdż's answer, though.
This question already has answers here: Adding admin-ajax.php to the frontend. Good or bad idea? (3 answers) Can I rename the wp-admin folder? (13 answers) Closed 6 years ago.I'm currently looking for a way to change / hide the default WordPress admin-ajax.php
URL. I want to do this to remove the admin
from it to prevent misunderstandings by my customers when I use the AJAX URL to read for example a file from my server. In this case, the URL has the admin prefix which is a bit confusing.
So in result the AJAX URl should looks like this: ajax.php
I've searched a bit but I can't find any helpful informations. Because of this I can't show you any related code. But when I got it, I'll update my question to help other people.
Maybe there is someone who did this before and can give me some helpful tips so that I can implement this asap? This would be very awesome!
This question already has answers here: Adding admin-ajax.php to the frontend. Good or bad idea? (3 answers) Can I rename the wp-admin folder? (13 answers) Closed 6 years ago.I'm currently looking for a way to change / hide the default WordPress admin-ajax.php
URL. I want to do this to remove the admin
from it to prevent misunderstandings by my customers when I use the AJAX URL to read for example a file from my server. In this case, the URL has the admin prefix which is a bit confusing.
So in result the AJAX URl should looks like this: ajax.php
I've searched a bit but I can't find any helpful informations. Because of this I can't show you any related code. But when I got it, I'll update my question to help other people.
Maybe there is someone who did this before and can give me some helpful tips so that I can implement this asap? This would be very awesome!
Share Improve this question asked Apr 5, 2019 at 19:46 Johnny97Johnny97 2147 silver badges18 bronze badges 1- 2 Looks like wordpress.stackexchange/questions/83650/… might solve that. – fuxia ♦ Commented Apr 5, 2019 at 20:45
2 Answers
Reset to default 5It's not as hard to solve as one might think... If only all plugins/themes respect best practices.
If they do, then all links to admin-ajax.php
are generated with admin_url
function. And this function has a hook inside, so we can modify the url it returns:
// This will change the url for admin-ajax.php to /ajax/
function modify_adminy_url_for_ajax( $url, $path, $blog_id ) {
if ( 'admin-ajax.php' == $path ) {
$url = site_url('/ajax/');
}
return $url;
}
add_filter( 'admin_url', 'modify_adminy_url_for_ajax', 10, 3 );
So now we have to teach WordPress to process such requests. And we can use .htaccess
to do so. This line should do the trick:
RewriteRule ^/?ajax/?$ /wp-admin/admin-ajax.php?&%{QUERY_STRING} [L,QSA]
So now, all the AJAX requests should be visible as /ajax/
and not as wp-admin/admin-ajax.php
The googles got me to this place, which does it with a plugin. https://github/devgeniem/wp-no-admin-ajax
Since it is open source, you might look at how they do it. Or just use the plugin.
No experience with it. "Security by obscurity" is not one of my things to do. But their process may work for you. If you are planning on copying the file elsewhere, be aware you may need to re-copy after WP updates.
Added: I like Krzysiek Dróżdż's answer, though.
本文标签: functionsHow can I rename the WordPress AJAX URL
版权声明:本文标题:functions - How can I rename the WordPress AJAX URL? 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/questions/1745622116a2159637.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论