Categoria WordPress, postagem de categoria e postagem única

4

Estou tentando fazer uma página de restaurante pelas principais cidades.

Minha primeira página mostra cidades, ao clicar em qualquer cidade, eu mostrarei todos os restaurantes e o único restaurante chamativo que mostrarei seus detalhes. qual é a estrutura das minhas páginas?

home (home page)
--restaurant (layout/template-restaurant.php)
----Eastern Cape (taxonomy-province.php)
------KFC (single-restaurant.php)

Estou fazendo certo?

estou usando template-sanha-restau.php como modelo de página. taxonomy-province.php mostram províncias que têm restaurantes. agora eu estou confuso que hierarquia devo seguir para mostrar todos os restaurantes de uma única província?

add_action( 'init', 'restau' );
function restau(){
  register_post_type( 'sanha-restau',
    array(
      'labels' => array(
        'name' => __( 'Restaurants' ),
        'singular_name' => __( 'Restaurant' )
      ),
      'public' => true,
      'has_archive' => true,
      'menu_icon' => 'dashicons-media-text',
      'hierarchical'      => true,
      'show_ui'           => true,
      'show_admin_column' => true,
      'query_var'         => true,
      'rewrite' => array('slug' => 'restaurants',),
      'supports'=> array( 'title', 'editor', 'excerpt', 'author', 'thumbnail',),
    )
  );
}

add_action( 'init', 'create_restau_taxonomy' );

function create_restau_taxonomy() {
    register_taxonomy(
        'province',
        'sanha-restau',
        array(
            'label' => 'Province',
            'hierarchical' => true,
        )
    );
}

gentilmente conselhos

código para template-restaurant.php

/*
Template Name: Restaurants Template
The template for displaying show image in header.
*/
get_header();
$custom_terms = get_terms('province');
foreach($custom_terms as $custom_term) {
    wp_reset_query();
    $args = array(
        'post_type' => 'sanha-restau',
        'orderby' => 'title menu_order',
        'tax_query' => array(
            array(
                'taxonomy' => 'province',
                'field' => 'slug',
                'terms' => $custom_term->slug,
            ),
        ),
     );
     $loop = new WP_Query($args);
     if($loop->have_posts()) {
         echo '<div">';
            echo '<a href="' . esc_url( get_term_link( $custom_term, $custom_term->taxonomy ) ) . '">'. $custom_term->name . '</a><br>';
         echo '</div>';
     }
}
get_footer();
    
por John Paul 20.06.2017 / 12:06

1 resposta

3

Eu acho que você está na direção certa. Você pode exibir todas as províncias com get_terms () e exibir todos os restaurantes daquela província perticular usando modelo loop-restraunt.php .

Mais uma sugestão, você também pode adicionar "campos personalizados" na matriz "supports" de register_post_type. Isso ativará os campos personalizados e será útil de várias maneiras.

    
por Sid 20.06.2017 / 14:37