2010-08-24 2 views
0

Это страница, ее WordPress сайт работает: сКак постраничной WordPress страницы + нужна помощь отладки + нужна помощь с POST/GET запросов

http://bit.ly/9oJXWV

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

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

Так что это мой шаблон:

http://pastebin.com/HQvMq3Db

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

http://pastebin.com/fWKqqzQv

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

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

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

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

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

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

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

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

Cheers!

+0

Извините, вы не можете удалить или удалить границу, потому что вы исправили свою проблему. Возможно, вы должны ответить на свой вопрос с подробностями о том, как вы его исправили? – Will

+0

@ Хорошо, я отправлю ответ и отметю его как принятый. :) – Gavrisimo

+0

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

ответ

1

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']; 

Просто поместите имя мета поля в этом $ результирующий массив и эхо его.

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

/acommodation/hostels/?city=beograd 

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

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

1

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

Да. да. нет.

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

+0

Уже разобрались все, что нужно отдать GET перед ответом. Но все равно вам дадут +1. – Gavrisimo