Как я могу получить идентификатор категории в шаблоне archive-product.php
? Я попытался получить эту информацию с помощью $category
var, но этот var не доступен в этом файле шаблона.
Обычно это должно работать с get_queried_object_id()
.
В любом случае, поскольку я не знаю, что именно делает Woo для запроса, это может быть неверно, так как функция API ссылается на объект, который в настоящее время запрашивается. И это объект из последнего запроса. Таким образом, вы также можете сделать следующее:
Отказ от ответственности: нижеприведенная письменная функция не проверена, и вы должны var_dump()
до тех пор, пока она не будет работать (а затем отредактируйте этот вопрос с вашим результатом и удалите эти строки здесь).
<?php defined( 'ABSPATH' ) OR exit; /** Plugin Name: Cat ID helper for WooCommerce */ add_action( 'pre_get_posts', 'wpse_98288_get_object_id', 0 ); function wpse_98288_get_object_id( $query = null ) { static $id = 0; if ( 'pre_get_posts' === current_filter() ) remove_filter( current_filter(), __FUNCTION__ ); $query->is_main_query() AND $id = $query->get( 'cat_id' ); if ( null !== $query ) return $query; return $id; }
Таким образом, это многоцелевая функция, которая должна использоваться как плагин (еще лучше: как mu-plugin). Он добавляет себя в процесс построения цикла / wp_query и пытается получить идентификатор из основного цикла. Затем вы можете вызвать его снова по имени своей функции в своем шаблоне, и он должен вывести идентификатор.
var_dump( $wp_query )
в том, что вы должны работать с var_dump( $wp_query )
чтобы определить, что именно задано и получить то, что вам нужно, поскольку я не знаю имен значений прямо сейчас прямо с моей головы.