lekérdezés megváltoztatása
WP-ben egy oldal sablonmintát szeretnék módosítani, úgy hogy ne az összeset kérdezze le, hanem csak az általam kiválasztottakat, pl.: 5-10 elemet. Az alapprobléma, hogy az oldalon az étlapnál és az itallapnál is megjelenik minden elem (ételek, italok is).
page.template.menu.php
■ page.template.menu.php
- <?php
- /*
- * Template Name: Menu Page
- */
- get_header(); ?>
- <?php //$temp_query = $wp_query; ?>
- <!-- begin main -->
- <section class="main menulist block grid4 clearfix">
- <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
- <header>
- <h2 class="post-title"><?php the_title(); ?></h2>
- </header>
- <div class="post-content">
- <?php the_content() ?>
- </div>
- <?php endwhile; endif;?>
- <?php
- // get initial categories
- $categories = get_terms( 'menus', array( 'orderby' => 'name', 'order' => 'ASC', 'hierarchical' => true, 'parent'=>0, 'hide_empty' => false, ) );
- foreach ( $categories as $category ) {
- // we don't want child categories now, and since get_categories does not support 'depth' parameter, we use ->parent check
- if ( $category->parent > 0 ) {
- continue;
- }
- $i = 0;
- echo '<h2 class="menu-title level-1">' . $category->name . '</h2>';
- query_posts(
- array(
- 'menus' => $category->slug,
- 'post_type'=> 'menu-item',
- //'orderby'=> 'menu_order',
- 'posts_per_page' => -1
- )
- );
- if ( have_posts() ) : while (have_posts()): the_post(); global $post;
- // let's make sure that the post is not also in any of child categories, if it is, skip it ( we don't want to display it twice )
- $child_categories = get_term_children( $category->term_id, 'menus' );
- //if ( $child_categories && in_category( $child_categories, $post->ID ) ) {
- if ( $child_categories && !is_object_in_term( $post->ID, 'menus', $category->name ) ) {
- continue;
- }
- echo 0 === $i ? '' : '';
- //include 'part.menuitem.php';
- get_template_part( 'part.menuitem' );
- $i++;
- endwhile;
- //wp_reset_query();
- endif;
- echo '';
- // now, after we listed all the posts, we query for child categories
- $categories2 = get_terms(
- 'menus',
- array(
- 'parent' => $category->term_id,
- 'hierarchical' => true,
- )
- );
- foreach ( $categories2 as $category ) {
- $j = 0;
- echo '<h2 class="menu-title level-2">' . $category->name . '</h2>';
- $posts2 = query_posts(
- array(
- 'menus' => $category->slug,
- 'post_type'=> 'menu-item',
- 'posts_per_page' => -1
- )
- );
- if ( have_posts() ) :while (have_posts()): the_post(); global $post;
- echo 0 === $j ? '' : '';
- //include 'part.menuitem.php';
- get_template_part( 'part.menuitem' );
- $j++;
- endwhile;
- //wp_reset_query();
- endif;
- echo null === $posts2 ? '' : '';
- }
- echo null === $posts ? '' : '';
- }
- ?>
- </section>
- <!-- end main -->
- <?php //$wp_query = $temp_query; ?>
- <?php get_footer(); ?>