Отображение нескольких постов категории на странице в wordpress
Я хочу отображать сообщения для нескольких категорий. Я создал выпадающий список всех категорий С помощью кода ниже:
<form method="get" action="<?php bloginfo('home');?>" >
<select name="cat" multiple>
<option value=""><?php echo esc_attr(__('Please Select Your Choice')); ?></option>
<?php
$categories= get_categories('show_count=0&orderby=name&echo=0&hierarchical=true&depth=1&taxonomy=category&exclude=1');
foreach ($categories as $category) {
$option = "<option value=$category->term_id>";
$option .= ucfirst($category->cat_name);
$option .= '</option>';
echo $option;
}
?>
</select>
<input type="submit" id="searchsubmit" value="Search" name="submit"/>
</form>
Всякий раз, когда я выбираю более одной категории, я могу видеть все идентификаторы cat в url, например: http://abcd.com/?cat=7&cat=8&cat=9
, но он отображает только последние сообщения категории с помощью archieve.PHP-файл. Я хочу, чтобы на странице отображались все выбранные категории сообщений.
Заранее благодарю.
2 ответа:
<?php if(isset($_POST['submit'])) { $categories = $_POST['category']; print_r($categories); } ?> <form action="" method="post"> <select name="category[]" size="5" multiple="multiple"> <option value="1">Red</option> <option value="2">Green</option> <option value="3">Blue</option> <option value="4">Yellow</option> <option value="5">Orange</option> <option value="6">Purple</option> <option value="7">Megento</option> <option value="8">Green</option> <option value="9">White</option> <option value="10">Black</option> </select> <input type="submit" name="submit" value="Submit" /> </form>
Примечание использование [] здесь -
<?php $categoryids = array(3,6,8,19); $args = array( 'numberposts' => 20, 'category__in' => $categoryids, 'orderby' => 'post_date', 'order' => 'DESC', 'post_type' => 'photo', 'post_status' => 'publish' ); $posts_array = get_posts( $args ); ?> <!-- The carousel --> <div class="scrolimageview"> <div class="prvdiv"><a href="javascript: void(0)" id="gallery-prev"><img src="<?php bloginfo( 'template_url' ); ?>/images/prev.png" width="40"/></a></div> <div id="gallery-wrap"> <ul style="width: 2068px; left: -188px;" id="gallery"> <?php foreach ($posts_array as $postd): ?> <?php $customd = get_post_custom($postd->ID); $attached_photo_filed = $customd["attached_photo"][0]; $attached_photod = str_replace($postd->ID . '_', $postd->ID . '_thumb_',$attached_photo_filed); $imaged = $upload_dir['baseurl'] . '/photos/' . $attached_photod; ?> <li><a href="<?php get_bloginfo('url')?>/photo-details?id=<?php echo $postd->ID; ?>"><img src="<?php echo $imaged; ?>" alt=""></a></li> <?php endforeach; ?> </ul> </div> <div class="prvdiv1" style="float:right"><a href="javascript: void(0)" id="gallery-next"><img src="<?php bloginfo( 'template_url' ); ?>/images/next.png"/></a></div> </div>
Этот код взят из одного из моих проектов, запущенных в реальном времени. Так что это 100% работает, пожалуйста, дайте мне знать, если вы попадете в какие-либо проблемы с ним.