Hiển thị các danh mục ngẫu nhiên trên trang đầu (Tìm và chỉnh sửa các chức năng chủ đề)


8

Tôi hiện đang trong giai đoạn alpha chỉnh sửa một chủ đề con cho chủ đề Wordpress. Tôi có kinh nghiệm lập trình và một số kinh nghiệm quản lý wordpress nhưng không có kinh nghiệm trực tiếp chỉnh sửa mã liên quan đến wordpress. Ngay bây giờ nó hiện đang hiển thị ba loại đầu tiên theo thứ tự abc.

Những gì tôi đang cố gắng thực hiện: Thay vì hiển thị ba danh mục đầu tiên theo thứ tự bảng chữ cái, tôi muốn hiển thị 3 danh mục ngẫu nhiên với hơn x số lượng sản phẩm.

Tôi đã chạy vào những rào cản / câu hỏi sau đây ngăn tôi tiếp tục.

  1. Cơ chế / chức năng nào kiểm soát việc lựa chọn các loại này? (Mã của họ)
  2. Đây có phải là chủ đề dựa trên hoặc một cái gì đó trong hệ thống WordPress cơ bản?
  3. Những thông tin nào khác có liên quan để thực hiện thay đổi này?
  4. Thông tin nào sẽ hữu ích từ Firefox Dev Bar?
  5. Làm cách nào để tìm "ItsCode" để tôi có thể thay thế bằng "MyCode"?

Câu hỏi thực sự ở đây là: Làm thế nào để tôi tìm thấy "ItsCode" chịu trách nhiệm cho lựa chọn này bằng các công cụ như firefox Dev Bar và nguồn thực tế?

Câu hỏi này không phải là về WooC Commerce (plugin). Tôi đang tìm cách để tìm một chức năng trong một chủ đề mà WooC Commerce (công ty) đã thiết kế hoặc trong bất kỳ chủ đề nào thực sự.

Chủ đề nguồn mở: Cửa hàng WooC Commerce


2
Tìm kiếm thẻ với các loại gói hoặc id cụ thể bằng Firefox Developer Inspector. Sau đó, tìm kiếm lớp hoặc id này trong các tệp nguồn chủ đề. Bạn nên tìm một số loại chức năng hiển thị danh mục. Chức năng ghi đè hoặc sử dụng bộ lọc chức năng để thay thế các danh mục.
kierzniak

Câu trả lời:


11

Câu hỏi thực sự ở đây là: Làm thế nào để tôi tìm thấy "ItsCode" chịu trách nhiệm cho lựa chọn này bằng cách sử dụng các công cụ như thanh firefox dev và nguồn thực tế?

Nếu bạn đang đề cập đến đầu ra / nguồn HTML, ví dụ như trên trang web demo chủ đề Storefront chính thức , chỉ cần nhấp chuột phải vào tiêu đề hoặc mục "Danh mục sản phẩm" và sau đó bạn có thể dễ dàng kiểm tra điều đó section. Xem tài liệu MDN để biết các tùy chọn khác, chẳng hạn như biểu tượng "Chọn thành phần".

nhập mô tả hình ảnh ở đây

Bây giờ đối với " nguồn thực tế " (nghĩa là mã hoặc hàm PHP tạo ra phần "Danh mục sản phẩm" trên Trang bằng mẫu "Trang chủ"), bạn có thể tìm thấy nó trong inc/storefront-template-functions.php.

if ( ! function_exists( 'storefront_product_categories' ) ) {
    /**
     * Display Product Categories
     * Hooked into the `homepage` action in the homepage template
     *
     * @since  1.0.0
     * @param array $args the product section args.
     * @return void
     */
    function storefront_product_categories( $args ) {

        if ( storefront_is_woocommerce_activated() ) {

            $args = apply_filters( 'storefront_product_categories_args', array(
                'limit'             => 3,
                'columns'           => 3,
                'child_categories'  => 0,
                'orderby'           => 'name',
                'title'             => __( 'Shop by Category', 'storefront' ),
            ) );

            ...
        }
    }
}

Vì vậy, storefront_product_categories()chức năng PHP mà bạn đang tìm kiếm và bạn hoàn toàn có thể ghi đè nếu bạn muốn (xem https: //docs.wooc Commerce.com/document/set-up-and-use-a-child-theme/# phần-5 ). Nhưng nếu bạn chỉ muốn hiển thị các danh mục sản phẩm theo cách sắp xếp ngẫu nhiên, thì bạn chỉ cần sử dụng storefront_product_categories_argsđể lọc các đối số truy vấn (trong trường hợp của bạn là orderby):

add_filter( 'storefront_product_categories_args', function( $args ){
    $args['orderby'] = 'rand';
    return $args;
} );

Bộ lọc đó được gọi từ bên trong storefront_product_categories()hàm và đây là các bộ lọc / hành động khác mà bạn có thể sử dụng:

  • Bộ lọc: storefront_product_categories_shortcode_args

  • Hoạt động: storefront_homepage_before_product_categories

  • Hoạt động: storefront_homepage_after_product_categories_title

  • Hoạt động: storefront_homepage_after_product_categories

Xem điều này nếu bạn không chắc chắn về sự khác biệt giữa "hành động" và "bộ lọc".


CẬP NHẬT: Làm thế nào bạn có thể tìm thấy mã?

Duyệt qua tài liệu chủ đề Storefront :

Tôi đang tìm cách để tìm một chức năng trong một chủ đề mà WooC Commerce (công ty) đã thiết kế hoặc trong bất kỳ chủ đề nào thực sự.

  • Đầu tiên, kiểm tra (và đọc) tài liệu của chủ đề.

  • Nếu không có hoặc bạn không / không thể tìm thấy thông tin bạn cần, hãy thử những gì @motivast đã đề xuất - Kiểm tra các thành phần trên trang, tìm mã HTML phù hợp và / hoặc CSS class/ id, sau đó tìm kiếm các tệp chủ đề cho nó HTML hoặc CSS class/ idcho đến khi bạn tìm thấy đúng tệp hoặc mã PHP / function.

Ví dụ: trên trang web demo chủ đề Storefront, HTML của phần danh mục sản phẩm là:

<section class="storefront-product-section storefront-product-categories" aria-label="Product Categories">
    ...
</section>

Vì vậy, bạn có thể tìm kiếm các tệp chủ đề bằng một trong những từ khóa sau: (Tôi sẽ bắt đầu từ kết quả khớp cụ thể nhất hoặc gần nhất với HTML được tạo)

  • <section class="storefront-product-section storefront-product-categories"

  • class="storefront-product-section storefront-product-categories"

  • storefront-product-categories

  • storefront-product-section

Giả sử bạn không biết về tài liệu Storefront / theme, thực hiện các tìm kiếm ở trên cuối cùng sẽ đưa bạn đến đúng tệp hoặc mã PHP / function.

Nếu bạn cần hỗ trợ thêm, hãy cho tôi biết và tôi sẽ cập nhật câu trả lời này cho phù hợp.


Phần được cập nhật cho câu trả lời, không hoạt động với cửa hàng 2.5.0 Ngay cả các ví dụ bộ lọc đã cho trên trang tài liệu của riêng họ.
klewis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.