- Вернуться на ту страницу, с которой я пришёл
- Раз и навсегда разбираемся со ссылками на следующую и предыдущую записи!
- Почему бы для полного счастья ещё и не настроить типы записей?
- По теме:
- Миша
- Как вывести ссылки Следующая / Предыдущая запись в WordPress
- 1-й способ. Следующая / Предыдущая запись без миниатюр
- 2-й способ. Следующая / Предыдущая запись с миниатюрами
Вернуться на ту страницу, с которой я пришёл
Получить страницу, с которой пришел пользователь
Даже не знаю куда еще смотреть: необходимо узнать с какой страницы перешел пользователь. Вроде все.
Переход на web страницу, с которой пришел запрос
перехожу из одной страницы на другую с помощью метода redirect Response.Redirect("string.aspx").
Как вернуться на блок div c id, с которого пришел
Добрый день всем. Помогите пожалуйста. Есть 10 блоков у которых есть ссылка на один и тот же <div.
Как сделать redirect на url с которой пришел?
Пишу приложение на Zend Как и откуда можно вытащить предыдущую url? К примеру на сайте есть.
все действия происходят в index.php
допустим, я перешёл в меню «редактирования текста»
index.php?id=5 там я изменил текст, перешёл на index.php?id=5&st=1, после чего он должен у меня моментом вернуться index.php?id=5
через хейдер так нельзя, у меня все через пост =(
а сессии у меня и так забиты по уши
Добавлено через 1 минуту
можно как-то ведь, я минимум 2-а способа видел, не помню где, найти не магу
через SERVER[»] или в хейдере какая-то функция
header("Location: index.php?id=".$_GET['id']);
a href="#" OnClick="history.back();">Назад/a>
Добавлено через 2 минуты
хотя лучше чем никак, с этим буду рыть землю
$redicet = $_SERVER['HTTP_REFERER']; @header ("Location: $redicet");
a href="#" onclick="history.go(-1); return false;">Назад/a>
«-1» это на сколько страниц назад возвращаться.
Добавлено через 13 минут
Сообщение от Unick-legenda
Сообщение от boong
Сообщение от boong
Сообщение от boong
$redicet = $_SERVER['HTTP_REFERER']; @header ("Location: $redicet");
form action="http://full_url_with_get_vars/" method="post" name="theform"> input type="hidden" name="post1" value=" " /> input type="submit" value="Continue" /> /form> script type="text/javascript">document.theform.submit();/script>
3) Как ни странно — сессии (имхо, самое правильное решение)
4) Делаешь внутреннюю переброску на скрипт, который формирует полноценный постовый редирект:
$req="submit=true&cmd=test"; header("method: POST\r\n"); header("Host: localhost\r\n"); header("Content-Type: application/x-www-form-urlencoded\r\n"); header("Content-Length: ".strlen($req)."\r\n"); header($req."\r\n\r\n"); header("Connection: close\r\n\r\n"); header("Location: http://127.0.0.1/php_tuts/redirect/end.html\r\n");
Раз и навсегда разбираемся со ссылками на следующую и предыдущую записи!
Уверен, что так или иначе вы сталкивались с задачей вывода на какой-то конкретной записи ссылок на предыдущую и следующую запись. Далеко за примером ходить не надо — возьмём хотя бы стандартную тему Twenty Fifteen .
Возможно вы даже знакомы с функциями next_post_link() , previous_post_link() или the_post_navigation() (как раз этой функцией и реализовано в теме Twenty Fifteen.
Каждая из этих функций имеет свои параметры и в какой-то степени довольно гибкая, однако и этого порой хватает не всегда!
Так вот, если вы не можете вписать вашу вёрстку в перечисленные выше функции, я рекомендую вам взглянуть на get_previous_post() (предыдущая запись) и get_next_post() (следующая запись) — дело в том, что эти функции возвращают не просто URL и не просто какой-то HTML-элемент, а целый объект поста, которым уже мы можем распоряжаться как угодно!
Вообще принцип работы функции очень простой:
Функцию get_permalink() я использовал для получения ссылки на пост.
Как видите, в примере я добавил всплывающую подсказку через HTML-атрибут title. Возникает вопрос — для чего нам функция esc_attr()? Всё очень просто, она нужна на тот случай, если вдруг в заголовке поста укажут какие-то символы, которые нельзя помещать в HTML-атрибуты, в этом случае функция просто спасёт нашу вёрстку.
И да, у функции есть параметры, связаны они с рубриками, метками и таксономиями, если точнее, то они просто позволяют сделать так, чтобы брался не любой предыдущий/следующий пост, а именно тот, который отмечен точно такой же меткой, что и текущий, или находится точно в такой же рубрике. Например для меток это будет выглядеть следующим образом:
$pred_post = get_previous_post( true, '', 'post_tag' ); // первый параметр равен true - значит ДА, брать посты по тем же меткам // во втором параметре можно указать через запятую или в массиве ID меток, которые нужно проигнорировать // третий параметр - название таксономии, как раз для меток это post_tag
Более подробный пример — на видео:
Почему бы для полного счастья ещё и не настроить типы записей?
По умолчанию для ссылок на предыдущий и следующий пост берутся записи такого же типа, что и текущая. А что делать, если мы хотим, чтобы там отображались все типы или допустим какие-то определённые?
Предлагаю хукануть это через functions.php , через get_previous_post_where или get_previous_post_where (или сразу через оба!)
add_action( 'get_previous_post_where', 'misha_posts_and_page', 20 ); add_action( 'get_next_post_where', 'misha_posts_and_page', 20 ); function misha_posts_and_page( $where ){ // запрос выглядит "WHERE p.post_date $op %s AND p.post_type = %s $where" // самое главное, что параметр $op нифига не передаётся // но так как не хочется мутить два похожих хука, я сделаю просто str_replace return str_replace( array( "p.post_type = 'post'", "p.post_type = 'page'" ), "(p.post_type = 'post' OR p.post_type = 'page')", $where ); }
Суть этого хука в том, что после вставки его в functions.php , ссылки на следующую/предыдущую записи у вас начнут работать сразу и для записей и для страниц. Если код вызывает трудности, рекомендую глянуть на документацию функции PHP str_replace() и немного почитать про SQL-запросы.
По теме:
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
Как вывести ссылки Следующая / Предыдущая запись в WordPress
Доброго времени суток 🙂
В сегодняшней статье речь пойдет о том — как вывести ссылки Следующая Предыдущая запись в WordPress без плагина — с миниатюрами и без. В стандартных темах от WordPress такие ссылки есть после записи. Многие даже пытаются их удалить, потому что они не подходят для поставленной задачи. Я же хочу показать способ, который как раз добавит такую навигацию между записями. У такой функции есть свои плюсы.
Во-первых это создает перелинковку между внутренними страницами сайта.
Во-вторых создаст удобство для пользователя, одновременно заставит его обратить на какую-то запись внимание. На своем сайте я тоже использую данную функцию — первый вариант без миниатюр.
Давайте приступим к выполнению задачи.
1-й способ. Следующая / Предыдущая запись без миниатюр
Первое что нужно сделать — это найти и открыть Файл single.php. Далее внутри цикла вывода записи
Примерный вид цикла вывода записи
//сюда код, чтобы вывести над текстом записи //сюда код, чтобы вывести под текстом записи
вставить код приведенный ниже.
По сути это уже рабочий вариант и ссылки появятся на странице, вот только они будут сбиты под одну сторону и их вид оставляет желать лучшего. Чтобы привести все в порядок надо задать хотя бы минимальные стили. Для этого открываем файл стилей Вашей темы style.css и вставляем в него следующие строки:
#nav-single #nav-single a #nav-single .nav-next #nav-single .nav-previous
Теперь у Вас получился 100% готовый вариант. Конечно же можете менять стили и настроить все под себя и внешний вид темы.
2-й способ. Следующая / Предыдущая запись с миниатюрами
Второй способ немного отличается, но тоже не сложный. По сути просто другой код, но вставлять его нужно в те же места, что и первый, так что расписывать я не стану по новой, что куда, просто дам Вам разметку и стили.
Для начала код с разметкой.
", TRUE); ?>$nextPost = get_next_post(true); if($nextPost) < ?>ID, array(100,100) ); ?> %title", TRUE); ?>?>