2015-05-13 3 views
0

Я пытаюсь отобразить список продуктов WooCommerce в обычной таблице html. Эти продукты действительно простые продукты; каждый из них содержит имя продукта, два настраиваемых поля (массовые размеры &) и кнопку «Добавить в цитату». Это все, что будет отображаться на интерфейсе.Woocommerce display products in html table

В loop-start.php Я добавил отметку <table>. В loop-end.php я добавил закрывающий тег </table>. Но, когда загружается начальная страница и вы смотрите на источник, каждый продукт имеет свои собственные теги <table> и </table>. Я хотел бы иметь только одну таблицу ...

петли start.php:

<table> <?php echo (function_exists('sometheme_woo_shop_columns_class') ? sometheme_woo_shop_columns_class() : ''); ?>"> 

петли end.php:

</table> 

контента product.php:

<?php do_action('woocommerce_before_shop_loop_item'); ?> 

     <?php 
      /** 
      * woocommerce_before_shop_loop_item_title hook 
      * 
      * @hooked woocommerce_show_product_loop_sale_flash - 10 
      * @hooked woocommerce_template_loop_product_thumbnail - 10 
      */ 
      do_action('woocommerce_before_shop_loop_item_title'); 
     ?> 
<tr> 
<td>  <h5><?php the_title(); ?></h5></td> 



     <?php 
      /** 
      * woocommerce_after_shop_loop_item_title hook 
      * 
      * @hooked woocommerce_template_loop_rating - 5 
      * @hooked woocommerce_template_loop_price - 10 
      */ 
      do_action('woocommerce_after_shop_loop_item_title'); 
     ?> 
<td>  <?php echo get_post_meta(get_the_ID(), '_mass_field', true); ?></td> 
<td>  <?php echo get_post_meta($post->ID, '_dimensions_field', true); ?></td> 
<td> 

    <?php 

     /** 
     * woocommerce_after_shop_loop_item hook 
     * 
     * @hooked woocommerce_template_loop_add_to_cart - 10 
     */ 
     do_action('woocommerce_after_shop_loop_item'); 

    ?> 
</td> 
</tr> 

Источник страницы переднего плана продукции:

<div class="relative-container">...</div> 
<div cass="boxed layout boxed colors</div> 
<table>...</table> 
<div class="relative-container">...</div> 
<div cass="boxed layout boxed colors</div> 
<table>...</table> 
<div class="relative-container">...</div> 
<div cass="boxed layout boxed colors</div> 
<table>...</table> 
<div class="relative-container">...</div> 
<div cass="boxed layout boxed colors</div> 
<table>...</table> 
etc. 

ответ

0

Увидев, что я искал это решение некоторое время (до публикации вопроса), я отправлю решение здесь, если кому-то еще понадобится то же самое.

Проблема: вставки форматирования Wordpress <table> и </table>, когда он генерирует интерфейс. Таким образом, решение заключается в отключении автоматического форматирования Wordpress. Добавление этой строки в functions.php делает трюк:

remove_filter('the_content', 'wpautop'); 

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

function remove_wp_autoformatting() { 
    remove_filter('the_content', 'wpautop'); 
    } 

add_action ('woocommerce_before_shop_loop_item', 'remove_wp_autoformatting'); 

Ради полного раскрытия, я еще новичок. Итак, если у кого-то есть более эффективное решение, было бы очень признательно.