Как разбить страницу на Wordpress - PullRequest
0 голосов
/ 24 августа 2010

Это страница, на которой работает wordpress сайт:

http://bit.ly/9oJXWV

Вы выбираете какое-то значение, оно делает POST на той же странице и на основе выбранного вами значения создает список страниц.

Теперь, прежде чем перейти к моему коду, я просто хочу сказать, что я новичок, и что моей главной проблемой здесь были запросы к базе данных, поэтому я не фокусировался на других мелких вещах (таких как куча if при запуске встроенного css и тому подобное).

Итак, это мой шаблон:

http://pastebin.com/HQvMq3Db

Это функция из functions.php, которую я использую в шаблоне:

http://pastebin.com/fWKqqzQv

Эта страница работает так, как я хочу, и я только что закончил собирать весь код, но у меня есть одна проблема. Как только я разберусь с этим, я сделаю код намного приятнее ...:)

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

Так что это та часть, в которой мне нужна помощь с отладкой. Я действительно не знаю, как с этим справиться.

Вторая часть этого вопроса проста: как мне разбить страницу на страницы? Любая ссылка, совет, учебное пособие было бы хорошо.

Также еще одна вещь, как я могу иметь ссылки, например, такие:

... / хостелы /? Градусы = Beograd

а когда пользователь открывает эту страницу, ему не нужно нажимать, чтобы выбрать город, он уже перечислит все страницы из "Белграда"? Я думаю, что это GET запрос правильно? Могу ли я сделать что-то подобное с POST? О_о Не уверен, что здесь делать, как я сказал, я новичок.

Спасибо за чтение, с нетерпением ждем ответов и комментариев.

Ура!

Ответы [ 3 ]

1 голос
/ 30 августа 2010

и когда пользователь открывает эту страницу, ему не нужно нажимать, чтобы выбрать город, он уже перечислит все страницы из "Белграда"? Я думаю, что это GET запрос правильно? Могу ли я сделать что-то подобное с POST?

да. да. нет.

GET-запросы извлекают переменные из URL. так что вы просто запускаете ссылку с переменными GET, php будет отображать вашу информацию. но если вы используете POST, переменные извлекаются из «фона», переданного на предыдущей странице. поэтому вы не можете просто запустить ссылку, страница должна вызываться с предыдущей страницы (через форму), иначе страница не будет иметь доступа к переменным.

1 голос
/ 30 августа 2010

1) Я исправил нумерацию страниц, просто добавив &paged='.get_query_var('paged') к моему запросу.Теперь это выглядит так:

$hostels = new WP_Query('post_type=page&meta_key=Grad&meta_value='.$grad.'&posts_per_page=60&orderby=title&order=ASC&paged='.get_query_var('paged'));

@ js1568 я дал ему +1 за ответ, но он не ответил на весь мой вопрос.

Теперь я могу просматривать страницы примерно так:

/acommodation/hostels/?city=beograd - this is page 1
/acommodation/hostels/page/2/?city=beograd - this is page 2
/acommodation/hostels/page/3/?city=beograd - this is page 3
etc...

2) Проблема с отсутствующей информацией на некоторых страницах устранена путем помещения этого ниже конца внутреннего цикла:

wp_reset_query();

, а также я создал некоторую пользовательскую функцию, которая получит всемета значения для данного идентификатора записи:

function custom_get_meta_values($id){

$first_array = get_post_custom_keys($id);

foreach ($first_array as $key => $value) :
       $second_array[$value] =  get_post_meta($id, $value, FALSE);
        foreach($second_array as $second_key => $second_value) :
            $result[$second_key] = $second_value[0];
        endforeach;
 endforeach;

return $result;
}

В моем внутреннем цикле я вызываю эту функцию следующим образом:

$result = custom_get_meta_values($post->ID);

Тогда я просто повторяю то, что мне нужно, вот так:

echo $result['Mail'];

Просто поместите имя метаполя в этот массив $ result и отобразите его.

3) Я заменил POST запросом GET, чтобы теперь у меня могли быть такие ссылки:

/acommodation/hostels/?city=beograd

, который при открытии покажет каждое общежитие из 'beograd'.У меня есть только 4 возможных значения для городов, поэтому, если значение 'city', которое я получаю из запроса GET, не является одним из этих 4 значений, я ничего не делаю, просто покажу эту форму.Если это я возьму это значение и покажу список из этого города.

В соответствии с инструкциями Уилла, я отмечу этот ответ как принятый.

1 голос
/ 28 августа 2010

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

См .: http://codex.wordpress.org/Template_Tags/query_posts#Pagination_Parameters

...