Wordpress / PHP: показывать разные целевые страницы в условиях - PullRequest
0 голосов
/ 29 марта 2020

Я создал сайт Wordpress для сотрудников компании. Сайт может быть доступен всем желающим. Однако я хотел бы показать другую целевую страницу для внутренних и внешних посетителей.

Я могу проверить, получает ли кто-то доступ через сеть компании, проверив доступность внутренней страницы anet "www.intranet.examplecompany.com".

Вот моя первая идея, которая не сработала:

function url_check($url) { 
    $hdrs = @get_headers($url); 
    return is_array($hdrs) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$hdrs[0]) : false; 
}

//check URL
if(url_check('http://www.intranet.examplecompany.com')){
    //URL valid
    //show different landing page
    header('Location: http://myWebsite.com/differentLandingPage');

} else {
    //URL not valid
    //show regular homepage
    header('Location: http://myWebsite.com/Homepage1');
}

И еще вопрос: куда именно мне вставить свой код? Я пытался добавить его перед индексом. php, который не работал.
Код должен выполняться только при запросе «http://myWebsite.com/». Не для каких-либо подстраниц. Может быть, есть совершенно другой подход к JavaScript или плагинам?

1 Ответ

0 голосов
/ 30 марта 2020

Прежде всего, поместите код для проверки URL в файл functions.php. Этот файл должен быть вашим первым выбором для хранения всех ваших настроек темы.

Существует два подхода для проверки URL и выполнения перенаправления.

Файлы шаблонов

Поскольку вы Выполнять код только в том случае, если пользователи посещают вашу домашнюю страницу, вы можете просмотреть файлы шаблонов Когда ваши пользователи посещают любую страницу на вашем веб-сайте, Wordpress должен определить, какой шаблон использовать для вывода результатов. Шаблоны, используемые для домашней страницы, представляют собой любой из front-page.php, home.php, page.php или index.php.

Если вы проверите URL внутри front-page.php или home.php, тогда вы можете убедитесь, что код будет выполняться только в том случае, если пользователи посещают домашнюю страницу вашего веб-сайта.

Действия Wordpress

Перехватчики действий Wordpress позволяют зарегистрировать функцию, которая должна выполняться до или после стандартного действия Wordpress. Например, если вы хотите что-то сделать после инициализации Wordpress и до генерации какого-либо вывода, вы можете создать ловушку для действия init. См. справочную страницу Wordpress для получения исчерпывающего списка всех доступных действий.

Пример того, что вы можете сделать:

function check_url() {
    if ( is_admin() ) {
        // You probably only want to check the non-admin pages
        return;
    }

    if(url_check('someWebsite')){
        // Do what you need here
    }
}

add_action( 'init', 'check_url' );

Вы также можете рассмотреть возможность использования функция перенаправления из Wordpress: wp_redirect .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...