Bên trong list.phtml khối mẫu mà bạn có thể có được tên loại với
<?php echo $this->getLayer()->getCurrentCategory()->getName() ?>
Trong trường hợp này loại hiện tại được thiết lập trên lớp bởi catalog/product_list
khối trong _getProductCollection()
gọi.
Bên trong nội dung trang CMS không có cách nào tôi biết để truy cập trực tiếp vào tên danh mục.
Từ một khối khác có tên danh mục có thể có liên quan nhiều hơn. Bạn có thể thử
<?php echo Mage::getSingleton('catalog/layer')->getCurrentCategory()->getName() ?>
Tất nhiên nó có thể là trường hợp đó không có loại hiện tại có thể đặt trên dụ lớp, do đó hãy chắc chắn kiểm tra cho rằng để tránh các lỗi xấu xí.
Về cơ bản, nếu phương pháp catalog/product_list
khối danh sách sản phẩm của phương pháp _beforeToHtml()
đã được thực thi, danh mục hiện tại sẽ được đặt trên lớp.
EDIT: Tất cả điều này giả định bạn muốn lấy tên danh mục mà không chỉ định lại ID danh mục. Nếu bạn không quan tâm đến điều đó, bạn luôn có thể nhận được tên danh mục với
<?php echo Mage::getModel('catalog/category')->load($this->getCategoryId())->getName() ?>
cả hai trang này đều không được xuất ra và làm cách nào để đặt lớp hiện tại? – molleman
đây là lỗi Gọi hàm thành viên getName() trên một đối tượng không trong magento – molleman
Lớp hiện tại trong sổ đăng ký được thiết lập bởi mô-đun tìm kiếm danh mục. Tôi đã cập nhật câu trả lời để sử dụng 'Mage :: getSingleton ('danh mục/lớp')' thay vào đó, và cũng đã thêm giải thích khi danh mục hiện tại được đặt trên cá thể lớp. – Vinai