Intereting Posts
Функция PHP Count с ассоциативным массивом MySQL Возвращает различное количество строк на localhost vs live server для одного и того же кода jQuery-File-Upload by blueimp – дополнительные заголовки PHP Memcache подключается к couchbase, но не может ничего сделать В PHP можно проверить содержимое Zip-файла без предварительного извлечения его содержимого? настроить несколько баз данных в zf2 Возврат JSON не работает должным образом Вставка данных формы в таблицу базы данных MySQL Преобразование из файла в растровое изображение в android Как установить активный лист без загрузки файла xlsx? форматирование массива с использованием php Microsoft® ODBC Driver 11 для SQL Server® на RedHat Linux с PHP – дает ошибку, когда параметр привязки с PDO для хранимых процедур Как установить местозаполнитель в drupal 7 в форме входа в систему Laravel, добавьте различные атрибуты html в параметры в выпадающих списках выбора Преобразование html-тега в textarea в расширенный текст

WordPress Woocommerce Советы с PHP-кодом

Я работаю с плагином woo commerece, и я бы хотел, чтобы под заголовком каждого продукта был заголовок под заголовком. Стиль и формат сортируются, однако я хочу, чтобы определенная категория отображалась в разделе подзаголовка. Мне удалось отобразить все категории, но я хочу сузить это до одной категории, которая находится под родительской категорией. Ниже приведен код, который я использую, может ли кто-нибудь предложить, как я мог бы показать какую-либо дочернюю категорию, выбранную под родительской категорией. благодаря

<?php /** * Single Product title * * @author WooThemes * @package WooCommerce/Templates * @version 1.6.4 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly global $post, $product; $cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) ); ?> <h1 itemprop="name" class="product_title entry-title"><?php the_title(); ?></h1> <?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Artist:', 'Artist:', $cat_count, 'woocommerce' ) . ' ', '.</span>' ); ?> 

Вот что получилось:

Array ([0] => stdClass Object ([term_id] => 59 [name] => Colorful [slug] => colorful [term_group] => 0 [term_taxonomy_id] => 59 [таксономия] => product_cat [description] = > [parent] => 115 [count] => 21 [filter] => raw) [1] => stdClass Object ([term_id] => 96 [name] => Karen Grant [slug] => karen-grant [ term_group] => 0 [term_taxonomy_id] => 96 [taxonomy] => product_cat [description] => [parent] => 90 [count] => 5 [filter] => raw) [2] => stdClass Object ([ term_id] => 69 [name] => Landscapes [slug] => landscapes [term_group] => 0 [term_taxonomy_id] => 69 [taxonomy] => product_cat [description] => [parent] => 115 [count] = > 35 [filter] => raw) [3] => stdClass Object ([term_id] => 71 [name] => Nature [slug] => nature [term_group] => 0 [term_taxonomy_id] => 71 [таксономия] => product_cat [description] => [parent] => 115 [count] => 20 [filter] => raw))

 <?php /** * Single Product title * * @author WooThemes * @package WooCommerce/Templates * @version 1.6.4 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly global $post, $product; $cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) ); ?> <h1 itemprop="name" class="product_title entry-title"><?php the_title(); ?></h1> <?php global $post, $product; $cat_array = array(); $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details foreach($term_list as $cat_list) { array_push($cat_array, $cat_list->term_id); } $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array $termchildren = get_term_children( '90' , 'product_cat' ); //New Line in Updattion -1 $final_result = array_intersect($cat_array,$termchildren); print_r($final_result); $new_cat_id = $final_result[0]; $cat_url = get_term_link ($new_cat_id, 'product_cat'); //get link of parent ID $term = get_term( $new_cat_id, 'product_cat' ); //Get Name of the parent from the parent ID $name = $term->name; //Store it into an varialbe echo "Artist: <a href='".esc_url($cat_url)."'>".$name."</a>"; ?> 

'

Related of "WordPress Woocommerce Советы с PHP-кодом"

Попробуй это :

 <?php global $post, $product; $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array $cat_url = get_term_link ($cat_id, 'product_cat'); //get link of parent ID $term = get_term( $cat_id, 'product_cat' ); //Get Name of the parent from the parent ID $name = $term->name; //Store it into an varialbe echo "Artist: <a href='".esc_url($cat_url)."'>".$name."</a>"; ?> 

Запомнить :

В WooCommerce категории продуктов не являются нормальными категориями , они представляют собой обычную таксономию, созданную специально для продуктов, которые просто обозначаются как «Категории» .

Дайте мне знать. Если у вас есть сомнения.

Обновлено:

  <?php global $post, $product; $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array $termchildren = get_term_children( '90' , 'product_cat' ); //New Line in Updattion -1 $new_cat_id = $termchildren[2]; $cat_url = get_term_link ($new_cat_id, 'product_cat'); //get link of parent ID $term = get_term( $new_cat_id, 'product_cat' ); //Get Name of the parent from the parent ID $name = $term->name; //Store it into an varialbe echo "Artist: <a href='".esc_url($cat_url)."'>".$name."</a>"; ?> 

Новое обновление (02 января 2015 г.)

  <?php global $post, $product; $cat_array = array(); $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details foreach($term_list as $cat_list) { array_push($cat_array, $cat_list->term_id); } $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array $termchildren = get_term_children( '90' , 'product_cat' ); //New Line in Updattion -1 $final_result = array_intersect($cat_array,$termchildren); $final_cat_result = array_values($final_result); $new_cat_id = $final_cat_result[0]; $cat_url = get_term_link ($new_cat_id, 'product_cat'); //get link of parent ID $term = get_term( $new_cat_id, 'product_cat' ); //Get Name of the parent from the parent ID $name = $term->name; //Store it into an varialbe echo "Artist: <a href='".esc_url($cat_url)."'>".$name."</a>"; ?> 

Line: 1 $post и $product – это глобальные переменные. Так что, чтобы использовать это в других файлах, мы должны добавить это в наш файл перед его использованием.

Строка: 2 Один пустой массив для хранения всех категорий текущего продукта **. Мы будем использовать его в будущем.

Строка: 3 wp_get_post_terms используется для получения условий публикации (для woocommerce – ее категории для продукта). Итак, теперь у нас есть массив, содержащий все детали терминов с ID, name т. Д. И т. Д.

Линия: 4 Это для цикла через сгенерированный массив. Мы будем array_push через массив и искать term_id Мы будем использовать array_push для хранения всего идентификатора термина и для хранения мы будем использовать пустой массив из строки 2. Итак, теперь мы имеем массив term_id .

Строка: 9 Теперь мы будем использовать get_term_children для извлечения детского термина Artist, поскольку мы знаем term ID члена Artist и его fixed.It даст массив как результат.

Строка: 10 array_intersect полезен для сопоставления двух массивов и выборки только соответствующих значений. (В основном мы рассматриваем текущую категорию продукта и всю категорию исполнителя, чтобы вывести только соответствующую категорию).

Строка: 11 array_values полезна для переопределения массива. (Добавляя эту строку, мы решаем ошибку, которая наступает :))

Линия: 12 Теперь у нас есть массив, который имеет только одно значение, которое является term ID художника. (Вот оно. Теперь вам нужно получить только имя и ссылку исполнителя с этого идентификатора термина)

Строка: 13 Получить ссылку исполнителя.

Строка: 15 Выберите имя исполнителя из массива, сгенерированного в строке 14, и сохраните его в переменной.

Линия: 16 Распечатайте нужную вещь, и мы закончили!