Intereting Posts
Форма комментариев Ajax представляет на главной странице оповещения об успешности, но без вставки Форма пользовательского поиска WP_Meta_Query – Фильтрация пользовательских полей Минимизация скриптов и css-файлов, добавляемых плагинами Создание нескольких страниц Как отсортировать область администрирования пользовательского типа WordPress с помощью настраиваемого поля Удаление постоянной ссылки с большого пальца в двадцать один фильтр отображения, у которого есть контент Несколько сообщений / страниц на одной странице? Какой крюк для добавления действия на конкретную страницу? Настройка разметки содержимого Widget Проблема использования памяти в WordPress 3.x Можно ли переименовать поле описания в пользовательский тип сообщения? Как передать аргументы из add_settings_field () в функцию обратного вызова? Я правильно добавляю стили в плагин? WP_load, shortinit для wordpress Ajax

Хранить разбивку на страницы в закладках

Есть ли способ разбивать страницы на несколько вкладок?

У меня есть страница с 5 вкладками, каждая вкладка отфильтровывает содержимое из тех же сообщений. Например:

Tab 1 – Все сообщения. Вкладка 2 – сообщения с ключевым словом. Вкладка 3 – Сообщения с ключевым словом два.

и т.д…

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

Используйте следующее расширение для класса WP_Query .

Расширение принимает ваши аргументы как массив, а не строковый формат.

Вы должны добавить отдельные значения для «page_link» для каждой из ваших вкладок. Это должна быть строка («tab1», «tab2» и т. Д. И т. Д.),

Затем вам нужно будет использовать $my_query->next() и $my_query->prev() чтобы добавить ссылки для поворота страницы на каждую вкладку.

Код также здесь

  <?php class MF_Query extends WP_Query{ private $page_link = "page"; function __construct(array $args){ if(!array_key_exists('posts_per_page',$args)) $args['posts_per_page'] = 10; if(array_key_exists('page_link',$args)) $this->page_link['page_link']; $args['offset'] = (isset($_GET[$this->page_link])?($_GET[$this->page_link]-1)*$args['posts_per_page']:0); parent::query($args); } function next($link_text = "Next"){ $curPage = intval((isset($_GET['page'])?$_GET['page']:1));//Use 1 if $_GET['page'] not set $link = "<a href='".remove_post_vars(curPageURL()); if($curPage<$this->max_num_pages){ echo $link.$this->constructQuery($this->merge(array($this->page_link=>$curPage+1),$_GET))."'>".$link_text."</a>"; } else { return false; } } function prev($link_text = "Previous"){ $curPage = (isset($_GET['page'])?$_GET['page']:1);//Use 1 if $_GET['page'] not set $link = "<a href='".remove_post_vars(curPageURL()); if($curPage>1){ echo $link.$this->constructQuery($this->merge(array($this->page_link=>$curPage-1),$_GET))."'>$link_text</a>"; } else { return false; } } private function constructQuery(array $query){ $url_ext = "?"; foreach($query as $k => $v){ $url_ext .=$k."=".$v."&amp;"; } $url_ext = substr($url_ext, 0, -5);//chop last ampersand off return $url_ext; } private function merge($get, $put){ //Get values from one array, and put them in another (overriding existing values if appropriate) foreach ($get as $k => $v){ $put[$k]=$v; } return $put; } } ?> 

Вам нужно будет вернуть массив из paginate_links (), проверить URL-адрес для идентификатора фрагмента, а затем добавить его в ваш массив перед выходом.