2016-03-16 3 views
1

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

 function create_product_taxonomies() 
    { 
     // Add new taxonomy, make it hierarchical (like categories) 
     $labels = array(
        'name' => _x('product_categories', 'taxonomy general name'), 
        'singular_name' => _x('Product', 'taxonomy singular name'), 
        'search_items' => __('Search Product Category'), 
        'all_items' => __('All Product Categorie(s)'), 
        'parent_item' => __('Parent Product Category'), 
        'parent_item_colon' => __('Parent Product Category:'), 
        'edit_item' => __('Edit Product Category'), 
        'update_item' => __('Update Product Category'), 
        'add_new_item' => __('Add New'), 
        'new_item_name' => __('New Product Name'), 
        'menu_name' => __('Product Categories'), 

       ); 

     $args = array(
       'hierarchical' => true, 
       'labels' => $labels, 
       'show_ui' => true, 
       'show_admin_column' => true, 
       'query_var' => true, 
       'rewrite' => array('slug' => 'product_categories', 'with_front' => true)); 

     register_taxonomy('product_categories', array('products'), $args); 

Я добавил данные через панель администратора Wordpress. Теперь я хочу отобразить имена категорий в файле product.php.

function getLatestProducts() 
    { 
     $args = array(
       'post_status' => 'publish', 
       'post_type' => 'products', 
       'posts_per_page' => 12, 
       'order' => 'ASC' 
      ); 
     $result = '<div class="col-sm-3">'; 
     $loop = new WP_Query($args); 
     $i=0; 
     while ($loop->have_posts()) 
     { 
     $loop->the_post(); 
     $clink=get_permalink($post->ID); 
     $desc=get_the_excerpt(); 
     $categories = get_terms('product_categories'); 
     $desc = strip_tags(str_replace(array("<p>", "</p>"), "", $desc)); 
     $the_imgurl = get_post_custom_values('_cus_n__image'); 
     $theimage=$the_imgurl[0]; 
     $the_locurl = get_post_custom_values('_cus_n__location'); 
     $theloc=$the_locurl[0]; 
     echo $categories; 

     $result .='<div class="product-warp">'; 
     $result .='<div class="product"> <a href="#"><img src="/wp-content/themes/cake/images/pro1.jpg" title="" alt=""></a> </div>'; 
     $result .='<div class="product-name">'; 
     $result .='<h5><a href="#">'.$categories.'</a></h5>'; 
     $result .='</div>'; 
     $result .='</div>'; 
     $i++; 

    } 
    $result .= '</div>'; 
    if($i > 0){ 
     return $result; 
    } else { 
     return ""; 
} 

}

это просто печать этой arrayarrayarrayarrayarrayarray

+1

ОК, просто позвоните мне, чтобы вы также захотели, чтобы пользователь щелкнул по названию категории, а затем перешел к шаблону, где все продукты показывали нажатой категорию – deemi

+0

Да, сэр, я хочу сделать это –

+0

ясно, что вы пытаетесь распечатать из ... как вы, возможно, догадались массив. Я не работаю в wordpress, но это просто решается путем var_dumping из $ категорий и просмотра того, к какому ключу нужно получить доступ, чтобы получить собственное имя. – mschuett

ответ

1

Ok братан вы можете использовать get_terms функцию для этой цели. Вот пример:

Первая часть

<?php 
    $args = array(
       'orderby' => 'name' 
      ); 
    $terms = get_terms('product_categories', $args); 

    foreach($terms as $term) { 
?> 
     <a href="<?php echo get_term_link($term->slug, 'product_categories') ?>"> 
      <?php echo $term->name; ?> 
     </a> 
<?php   
    } 
?> 

Я только приведу вам пример. Вы можете вставить мой код, где хотите.

Вторая часть

Теперь используйте WordPress Taxonomy Template для этого, когда пользователь нажимает на одну из вашей категории и на следующей странице показаны все связанные продукты щелкнули категории, а также вы должны read это.

Если вы прочитали ссылку taxonomy Template, переходим к следующему шагу.

Теперь вы создаете файл taxonomy-product_categories.php в своей корневой папке темы.

Это создаст шаблон для вас таксономии.

Теперь в этом файле здесь полный код:

<?php 
    get_header(); 

    $slug = get_queried_object()->slug; // get clicked category slug 
    $name = get_queried_object()->name; // get clicked category name 

    $tax_post_args = array(
     'post_type' => 'products', // your post type 
     'posts_per_page' => 999, 
     'orderby' => 'id', 
     'order' => 'ASC', 
     'tax_query' => array(
      array(
       'taxonomy' => 'product_categories', // your taxonomy 
       'field' => 'slug', 
       'terms' => $slug 
      ) 
     ) 
    ); 
    $tax_post_qry = new WP_Query($tax_post_args); 

    if($tax_post_qry->have_posts()) : 
     while($tax_post_qry->have_posts()) : 
      $tax_post_qry->the_post(); 

      the_title(); 

      the_content(); 

     endwhile; 
    endif; 

    get_footer(); 
?> 

Еще раз я говорил вам, что я даю вам только код, который вы можете объединить этот код в вашей теме.

Надеюсь, это вам поможет.

+0

ОК сэр. Я пытаюсь это сделать сейчас. –

+0

просто скажите мне, когда вы преуспеете ... и не называйте меня sir – deemi

+0

сэр. что вы упомянули в первом шаге. Я применил его. он печатает 8 раз по всей категории i.e показаны 64 категории. я просто хочу напечатать один раз –

Смежные вопросы