Как провести запрос GET для файла, который не принадлежит к wordpress


wordpress не распознает файлы, которые не принадлежат ему, даже когда он стоял там в папке темы, что мой случай. С могу ли я сделать внешний файл, получить эту информацию?

, например: Я нахожусь в .page и там есть кнопка, с parâmetro via GET через link. Страницы находится в городе:

www.meusite.com.br/tema/page.php

целевой файл, который получит параметр является:

www.meusite.com.br/tema/src/arquivo.php

Этого arquivo.php было только туда, и нет никакой связи с wordpress, но имеет функцию захвата via $_GET.

ДЕТАЛИ : Я не хочу, чтобы получить доступ к файлу через интерфейс, то есть, представляет его на просмотр, но только заставить его выполнить их условия.

Author: Lollipop, 2015-05-26

1 answers

Предполагая, что вы находитесь sobreescrevendo ваши постоянные, вы не сможете сделать это, даже, учитывая, что файл находится внутри папке темы. Это происходит из-за того, WordPress, когда постоянные включены, лечить свои маршруты с помощью RewriteRules (.htaccess. Предполагая, что вы идете в панель администратора и установите, что ваши Url-адреса будут, например, на основе имени, должность, следующий .htaccess создал (я отнял примеры экземпляр WP что у меня работает в http://localhost/wp_testes/):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp_testes/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp_testes/index.php [L]
</IfModule>

# END WordPress

Этот ответ, SO gringo, отличным объяснением того, как эти правила работают. Суммируя это с Иерархии Шаблонов, WP, легко заключить, что все запросы, сделанные в течение вашего экземпляра WP (в моем случае, - /wp_testes/ вперед), будут направляться в соответствии с настоящими правилами, не допуская прямого доступа. В случае, если ваш файл teste.php не согласны с правилами, template, дома упасть.

Решений

  1. Не используйте постоянные.

    Грязно, я знаю. Ваши Url-адреса будут стоять ужасные, но это позволит вам иметь прямой доступ к файлу. В моем случае, отключил постоянные, и сделал прямой доступ http://localhost/wp_testes/wp-content/themes/twentyfifteen/teste.php?teste=123, где teste.php содержащиеся в этой инструкции complicadíssima:

    <?php echo $_GET['teste']; ?>
    

    И в результате, как и ожидалось, была

    123

  2. Вставьте ваш файл в root WordPress

    , Поместив в файл teste.php в папке, где файлы WP находятся (в моем случае в папке /wp_testes), правила постоянная, не должны влиять на ваши запросы. В данном случае, я сделал запрос http://localhost/wp_testes/teste.php?teste=123 (постоянные активированы) и я получил ожидаемый результат.

Я Не знаю, если вы разрабатываете обязательно тему, и может включать или не включать файлы в корневой папке WP. Я считаю, что вы не ограничиваясь, следующие два решения. Но сумма два (постоянные файл внутри темы), думаю, что не имеет как.

 1
Author: Caio Felipe Pereira, 2017-05-23 12:37:32