• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Решено Как Изменить шаблон вывода категорий [product_categories]

sideways

Новичок
Всем привет!

Мне нужно изменить верстку "Вывода категорий", тобишь [product_categories], он же content-product_cat.php. Выглядит он так:
PHP:
<?php
/**
 * The template for displaying product category thumbnails within loops
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/content-product_cat.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 2.6.1
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
?>
<li <?php wc_product_cat_class( '', $category ); ?>>
    <?php
    /**
     * woocommerce_before_subcategory hook.
     *
     * @hooked woocommerce_template_loop_category_link_open - 10
     */
    do_action( 'woocommerce_before_subcategory', $category );

    /**
     * woocommerce_before_subcategory_title hook.
     *
     * @hooked woocommerce_subcategory_thumbnail - 10
     */
    do_action( 'woocommerce_before_subcategory_title', $category );

    /**
     * woocommerce_shop_loop_subcategory_title hook.
     *
     * @hooked woocommerce_template_loop_category_title - 10
     */
    do_action( 'woocommerce_shop_loop_subcategory_title', $category );

    /**
     * woocommerce_after_subcategory_title hook.
     */
    do_action( 'woocommerce_after_subcategory_title', $category );

    /**
     * woocommerce_after_subcategory hook.
     *
     * @hooked woocommerce_template_loop_category_link_close - 10
     */
    do_action( 'woocommerce_after_subcategory', $category ); ?>
</li>

То есть вот эти do_action, меня и не устраивают, где достать код который кроется за этими do_action? чтобы разметить полный код на одной странице и менять его как я хочу.

Я знаю можно поменять местами позиции через ХУКИ. Но мне нужно переписать их заного, а не менять местами. Подскажите пожалуйста, как координально изменить верстку, ну например стандартный вывод:

HTML:
<li class="product-category product first">
    <a href="#"><img src="img.jpg" alt="Name-Cat-Test">      
    <h3>
        Name-Cat-Test <mark class="count">(16)</mark>
    </h3>
    </a>
</li>
Заменить на:
HTML:
<li class="product-category product first">
    что хочу то и творю.
</li>

Прошарил весь интернет, ничего по этому поводу не нашел.
 
Последнее редактирование:

sideways

Новичок
Ковыряя ХУКИ или как их там... не знаю поправьте, я разобрался как достать оригинальный код. А теперь просто не понимаю зачем их вообще нужно было делать.

Оригиналы кодов нашел в includes/wc-template-functions.php

Взял и удалил хуком, ну например:
PHP:
remove_action('woocommerce_before_subcategory_title', 'woocommerce_subcategory_thumbnail', 10); // img
Создал свою функцию куда и помещу исходный код из которого в будущем сверстаю свой индвидуальный дизайн:
PHP:
add_action('woocommerce_before_subcategory_title', 'custom_action', 10); // img
и вывел на свои глаза нормальный код в свою же функцию, который можно уже менять как мне душе угодно:
PHP:
function custom_action( $category ) {
    $small_thumbnail_size      = apply_filters( 'subcategory_archive_thumbnail_size', 'shop_catalog' );
    $dimensions                = wc_get_image_size( $small_thumbnail_size );
    $thumbnail_id              = get_woocommerce_term_meta( $category->term_id, 'thumbnail_id', true  );

    if ( $thumbnail_id ) {
        $image = wp_get_attachment_image_src( $thumbnail_id, $small_thumbnail_size  );
        $image = $image[0];
    } else {
        $image = wc_placeholder_img_src();
    }

    if ( $image ) {
        // Prevent esc_url from breaking spaces in urls for image embeds
        // Ref: https://core.trac.wordpress.org/ticket/23605
        $image = str_replace( ' ', '%20', $image );

        echo '<img src="' . esc_url( $image ) . '" alt="' . esc_attr( $category->name ) . '" width="' . esc_attr( $dimensions['width'] ) . '" height="' . esc_attr( $dimensions['height'] ) . '" />';
    }
}
И так можно сделать с любой функцией которая запрятана.

Объяснит мне кто нибудь?)) я просто с деревни, зачем они запрятали все это и упаковали в какие то непонятные для меня хуки, которые не подредактировать нормально и свою верстку не сделать и ниче кроме того как двигать вперед назад.
 
Сверху Снизу