Intereting Posts
Как изменить постоянные ссылки после окончания моего сайта WordPress? Уникальные классы заголовков виджетов Плюсы / минусы плагинов «WP e-commerce» и «Shopp» Как перенаправить при входе в систему определенного пользователя на основе роли? Как использовать json_decode значение post_meta? Как подключать и вставлять данные в базу данных WordPress? Как я могу запрашивать сообщения по настраиваемой мета и тем, которые были лишены? можно ли добавить новый шаблон в тему двадцать семнадцать? Проблема с выдачей короткого кода Введите строку в число Создать (показан) миниатюру для публикации? Передать $ page_id в новый WP_Query я не получаю больше уведомлений после добавления нового пользователя (а не сообщений электронной почты) Как переопределить функцию из расширения-плагина в классе wp_insert_post неверно избегает комментариев HTML, когда они включают теги

Отображение отдельной записи внутри аккордеона на основе результатов представления формы

* Примечание – для полного фона см. Предыдущий вопрос здесь: http://bit.ly/1gaF673

Хорошо, поэтому после устранения проблемы выше и нескольких следующих вопросов. Моя форма возвращает результаты, которые я хочу. Код, который делает это, выглядит следующим образом:

//THIS CODE CONNECTS TO THE NON-WP-TABLES WE MADE INSIDE THE WP DATABASE global $wpdb; //get list of localities $localityRow = $wpdb->get_results( "SELECT Name, LocalityID FROM tblYBSLocality ORDER BY Name ASC" ); //get list of schools $schoolRow = $wpdb->get_results( "SELECT Name, SchoolID FROM tblYBSSchool ORDER BY Name ASC" ); //get school ID if form has been submitted $SelectedSchoolID = $_GET['schools']; //get location ID if form has been submitted $SelectedLocationID = $_GET['localities']; //get selected school name $selectedSchoolName = $wpdb->get_var( "SELECT Name FROM tblYBSSchool WHERE SchoolID=".$SelectedSchoolID ); //get selected location name $selectedLocationName = $wpdb->get_var( "SELECT Name FROM tblYBSLocality WHERE LocalityID=".$SelectedLocationID ); //get route ID $getRouteID = $wpdb->get_results( "SELECT Name, RouteID, Description, RoutePageURI FROM tblYBSRoute WHERE RouteID IN ( SELECT RouteID FROM tblYBSRouteSchool WHERE SchoolID = $SelectedSchoolID ) AND RouteID IN ( SELECT RouteID FROM tblYBSRouteLocality WHERE LocalityID = $SelectedLocationID ) " ); //THIS CODE DISPLAYS THE RESULTS BASED ON WHAT THE USER HAS SELECTED IN THE CODE OMITTED if (isset($SelectedLocationID) && isset($SelectedSchoolID)) { ?> <div id="resultsDiv"> <div id="resultsHead"> <h3>Search results for routes between:</h3> <b><?php echo $selectedLocationName; ?></b> and <b><?php echo $selectedSchoolName; ?> </b><br /> (Click on route to view timetable and map) </div> <div id="routeResult"> <?php if ($getRouteID) { foreach ($getRouteID as $route) { $RouteName = $route->Name; $RouteID = $route->RouteID; $RouteDescription = $route->Description; $RoutePageID = $route->RoutePageURI; ?> <a href="../../<?php echo $RoutePageID;?>"><b>Route: </b><?php echo $RouteName;?></a> <br /> <?php echo $RouteDescription;?><br /> <?php } } else { ?> <div id="routeRestult"> <h4>Results:</h4> No Route found for your selection.<br /> </div><?php } ?> </div></div><?php } ?> 

Это работает так, как есть, но я хочу изменить то, что происходит. В настоящее время есть ссылка на индивидуальный идентификатор сообщения, где результаты – это потрясающе. Но я хочу сделать некоторые сковороды и поставить этот пост внутри аккордеона.

Я нашел отправную точку здесь: http://bit.ly/1nqT6Pw – но мне нужно понять, как сделать его более конкретным для того, что я пытаюсь сделать. Код из приведенной выше ссылки (как и в этом сообщении):

 <?php if (have_posts()): ?> <div id="accordion"> <?php while (have_posts()) : the_post();?> <div class="accordion-header"> <h1><?php the_title();?></h1> <?php the_excerpt();?> </div> <div><?php the_content();?></div> <?php endwhile; ?> </div> <?php else:?> <p><?php _e('No posts'); ?></p> <?php endif;?> 

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

Я изменил приведенный выше код следующим образом:

 <div id="routeResult"> <?php if ($getRouteID) { foreach ($getRouteID as $route) { $RouteName = $route->Name; $RouteID = $route->RouteID; $RouteDescription = $route->Description; $RoutePageID = $route->RoutePageURI; ?> <div id="accordion"> <?php while (is_single($RoutePageID));?> <div class="accordion-header"> <h1><?php the_title();?></h1> <?php the_excerpt();?> </div> <div><?php the_content();?></div> </div><?php } } else { ?> <div id="routeResult"> <h4>Results:</h4> No Route found for your selection.<br /> </div> <?php } ?> </div> 

Это работает лучше, чем вы думаете. Он создает divs, но без содержимого, за исключением заголовка (дождитесь его ….), но WRONG. Это дает мне название страницы, а не название сообщения.

Таким образом, оператор while обнаруживает, что yes $ RoutePageID действителен, и это одно сообщение, но затем возвращает текущий заголовок страницы.

Это связано с тем, что я подключился к другим таблицам, а $ wpdb нужно было возвращать в исходную таблицу? Или я должен что-то делать с get_post (не могу ссылаться на Codex как на необходимость большей репутации, но я знаю, где искать).

Как всегда, всякая помощь приветствуется. Благодарю вас!

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

 if (isset($SelectedLocationID) && isset($SelectedSchoolID)) { ?> <div id="resultsDiv"> <div id="resultsHead"> <h3>Search results for routes between:</h3> <b><?php echo $selectedLocationName; ?></b> and <b><?php echo $selectedSchoolName; ?></b><br /> (Click on route to view timetable and map) </div> <?php if ($getRouteID) { ?> <div id="routeResult"> <div id="accordion"> <?php foreach ($getRouteID as $route) { // Break the getRouteID results into separate variables $RouteName = $route->Name; $RouteID = $route->RouteID; $RouteDescription = $route->Description; $RoutePageID = $route->RoutePageURI; $getPost = $wpdb->get_results( $wpdb->prepare ( "SELECT post_content, post_name FROM m6anby77we_posts WHERE post_name = '%s'", $RoutePageID ) ); foreach ($getPost as $post) { $pName = $post->post_name; $pContent = $post->post_content; ?> <div class="accordion-header"> <h4>Route: <?php echo $RouteName;?> <?php echo $RouteDescription;?></h4> </div> <div><?php echo $pContent; ?></div> <?php } } ?> </div> </div> <?php } else { ?> <div id="routeResult"> <h4>Results:</h4> No Route found for your selection.<br /> </div> <?php } ?> </div> <?php } ?> 

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

Получайте удовольствие y'all