Подтвердить что ты не робот

Создайте страницу WordPress, перенаправляющую на другой URL-адрес

Я хотел создать новую страницу WordPress, которая на самом деле является ссылкой на другой сайт. Цель состоит в том, чтобы страница отображалась в списке моих страниц, но фактически отправляла веб-пользователя на целевой URL.

Например, скажем, я хочу включить страницу, которая указывает "Мои фотографии", но на самом деле перенаправляет их на Flickr.

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

4b9b3361

Ответ 1

Вы можете выполнить эти два способа, оба из которых необходимо выполнить, отредактировав файлы шаблонов.

Первый - это просто добавить html-ссылку в вашу навигацию, где бы вы ее ни появлялись.

Вторая (и моя догадка, которую вы ищете) заключается в создании нового шаблона страницы, что не слишком сложно, если у вас есть возможность создать новый .php файл в каталоге тем/шаблонов, Что-то вроде приведенного ниже кода должно:

<?php /*  
Template Name: Page Redirect
*/ 

header('Location: http://www.nameofnewsite.com');
exit();

?>

Если имя шаблона - это то, что вы хотите установить, и URL-адрес в функции заголовка - это новый URL-адрес, на который вы хотите направить пользователя. После того, как вы измените приведенный выше код в соответствии с вашими потребностями, сохраните его в файле php в активной папке темы с именем шаблона. Итак, если вы оставите имя своего шаблона "Перенаправление страницы", введите страницу php файла-redirect.php.

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

Кроме того, вы можете сделать это динамически, используя раздел "Пользовательские поля" под редактором body. Если вам интересно, дайте мне знать, и я могу вставить код для этого парня в новый ответ.

Ответ 2

Я обнаружил, что эти проблемы чаще всего решаются на уровне сервера. У вас есть доступ к файлу .htaccess, где вы можете разместить правило перенаправления? Если да:

RedirectPermanent /path/to/page http://uri.com

Это перенаправление также будет служить ответом "301 Moved Permanentently", чтобы указать, что страница Flickr (например) является постоянным URI для старой страницы.

Если это невозможно, вы можете создать собственный шаблон страницы для каждой страницы и добавить следующий код PHP в начало шаблона страницы (на самом деле это все, что вам нужно в шаблоне:

header('Location: http://uri.com, true, 301');

Дополнительная информация о заголовках PHP.

Ответ 3

В качестве альтернативы используйте фильтр.

Создайте пустую страницу в своем блоге WordPress, названную соответствующим образом, что вам нужно. Обратите внимание на post_id. Затем создайте фильтр, который изменяет его постоянную ссылку.

add_filter('get_the_permalink','my_permalink_redirect');
function my_permalink_redirect($permalink) {
    global $post;
    if ($post->ID == your_post_id_here) {
        $permalink = 'http://new-url.com/pagename';
    }
    return $permalink;
}

Таким образом, URL-адрес будет правильно отображаться на странице, не требуются смешные переадресации.

Если вам нужно сделать это много, подумайте об использовании пользовательских полей postmeta, чтобы определить значение postmeta для "offsite_url" или что-то в этом роде, затем вы можете создавать страницы по мере необходимости, вводить значение "offsite_url", а затем используйте фильтр, подобный приведенному выше, вместо проверки post_id, который вы проверяете, чтобы проверить, требуется ли ему послегалактическая почта, и, если необходимо, изменить постоянную ссылку.

Ответ 4

Я не знаком с шаблонами Wordpress, но я предполагаю, что заголовки отправляются в браузер WP, прежде чем ваш шаблон будет даже загружен. Из-за этого общий метод перенаправления:

header("Location: new_url");

не будет работать. Если не существует способа заставить отправку заголовков через шаблон до того, как WP сделает что-нибудь, вам нужно будет использовать Javascript следующим образом:

<script language="javascript" type="text/javascript">
document.location = "new_url";
</script>

Поместите это в раздел, и он будет запущен при загрузке страницы. Этот метод не будет мгновенным, и он также не будет работать для людей с отключенным Javascript.

Ответ 6

Используйте плагин "raw" https://wordpress.org/plugins/raw-html/ Тогда это так же просто, как:

[raw]
<script>
window.location = "http://www.site.com/new_location";
</script>
[/raw]

Ответ 8

Вы можете просто сделать это без каких-либо подключений

echo 'window.location.replace("http://www.yourweburl.com")';

Но мне не нравится это перенаправление. Мне нравится перенаправлять, используя заголовок !!

Используйте это как временное решение