2016-05-06 3 views
0

Я хотел бы переместить связанные продукты на странице Products в нижнюю позицию с полным столбцом ширины, поэтому я определил следующее в файле functions.php, чтобы сделать именно это;Wordpress, Woocommerce Storefront Связанные продукты

// Move related products 
    remove_action('woocommerce_after_single_product_summary','woocommerce_output_related_products',20); 
    add_action('storefront_before_footer','woocommerce_output_related_products',20); 

Однако, поступая таким образом соответствующие продукты в настоящее время предположительно находится за пределами какого-то важного цикла, потому что они теперь отображается на категорию архивных страниц.

Кто-нибудь знает (а) Как ограничить вывод на страницы продукта (без отображения: нет, в таблице стилей) -или- (b) другое определенное положение, в котором я могу разместить контент снаружи (ниже) div и предположительно боковые панели, но сохраняют актуальность связанных продуктов с отображаемой страницей продукта?

Я бы предпочел не пытаться перестроить вывод html для и, я уверен, вы поймете, что это будет иметь большое влияние.

Еще одна идея, которую я предполагаю (хотя и не идеальный или правильный путь), может заключаться в использовании jQuery.

ответ

1

EDITED: это должно ограничивать вывод на страницы продукта.

remove_action('woocommerce_after_single_product_summary','woocommerce_output_related_products',20); 

add_action('storefront_before_footer','woo_related_product_addition'); 

function woo_related_product_addition() { 

    global $post; 

    if (function_exists('get_product')) { 
     add_action('storefront_before_footer','woocommerce_output_related_products',20); 
    } 
} 

Если это не работает для вас ...

remove_action('woocommerce_after_single_product_summary','woocommerce_output_related_products',20); 

add_action('storefront_before_footer','woo_related_product_addition'); 

function woo_related_product_addition() { 

    global $post; 

    if (function_exists('get_product')) { 
    $product = get_product($post->ID); 

    if ($product->is_type('single' || 'grouped' || 'external' || 'variable')) { 
     add_action('storefront_before_footer','woocommerce_output_related_products',20); 
    } 
} 
} 

EDIT 2: Затем можно удалить продукты из архивных страниц, делая что-то вроде.

remove_action('woocommerce_after_single_product_summary','woo_related_product_removal'); 

function woo_related_product_removal() { 

    global $post; 

    if (function_exists('get_product')) { 
    $product = get_product($post->ID); 

    if (!$product->is_type('single' || 'grouped' || 'external' || 'variable')) { 
     remove_action('woocommerce_after_single_product_summary','woocommerce_output_related_products',20); 
    } 
} 
} 
+0

шорткод легче использовать в некоторых случаях вы можете просто написать его непосредственно в страницу продукта в нужном месте и указать продукты на одной странице и столбцов, я не понимаю, что вы найдете неясно? – Scott

+0

Я с @cale_b на этом ответе, извините, это просто еще один пример того, что я уже сделал. – Stuart

+0

да я вижу проблему в один миг, я думаю, что у меня есть решение для вас, я думаю, что я просто прочитал ее, чтобы быстро пересмотреть ответ. – Scott

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