25 ноября 2019

Title, description, keywords и h1 для категорий товаров Woocommerce

Для вывода мета-полей на странице редактирования категорий товаров используем хук product_cat_edit_form_fields.

Редактируем файл functions.php

/* Мета-поля для категорий товаров */
add_action("product_cat_edit_form_fields", 'NAME_meta_product_cat');
function NAME_meta_product_cat($term){?>
<tr class="form-field">
<th scope="row" valign="top"><label>Заголовок (title)</label></th>
<td><input type="text" name="NAME[title]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'title', 1 ) ) ?>"><br /><p class="description">Не более 60 знаков, включая пробелы</p>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label>Краткое описание (description)</label></th>
<td><input type="text" name="NAME[description]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'description', 1 ) ) ?>"><br /><p class="description">Краткое описание (description)</p>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label>Заголовок h1</label></th>
<td><input type="text" name="NAME[h1]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'h1', 1 ) ) ?>"><br /><p class="description">Заголовок страницы</p>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label>Ключевые слова</label></th>
<td><input type="text" name="NAME[keywords]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'keywords', 1 ) ) ?>"><br /><p class="description">Ключевые слова (keywords)</p>
</td>
</tr>
<?php}


На странице редактирования категорий товаров появится четыре новых поля:


Теперь сохраняем данные в БД используя еще одну функцию

/* Сохранение данных в БД */
add_action('edited_product_cat', 'NAME_save_meta_product_cat');  
add_action('create_product_cat', 'mayak_save_meta_product_cat');
function NAME_save_meta_product_cat($term_id){
 if (!isset($_POST['NAME']))
  return;
 $NAME = array_map('trim', $_POST['NAME']);
 foreach($NAME as $key => $value){
  if(empty($value)){
   delete_term_meta($term_id, $key);
   continue;
  }
  update_term_meta($term_id, $key, $value);
 }
 return $term_id;
}

WordPress вывести имя и ID термина таксономии текущей страницы или дочерней

$taxonomy_name = get_queried_object()->name; // Get the name of the taxonomy
$term_id = get_queried_object_id(); // Get the id of the taxonomy

01 ноября 2019

Редирект со страницы без заданых параметров в корень

301-редирект со страницы без заданного параметра в корень .htaccess


http://www.site.ru/?abc

RewriteCond %{QUERY_STRING} ^abc$ [NC]
RewriteRule ^$ /? [R=301,L]



http://www.site.ru/?page=2

RewriteCond %{QUERY_STRING} ^page=2$ [NC]
RewriteRule ^$ /? [R=301,L]