Для того, чтобы редкатор вордпресс не удалял теги параграфа и переноса необходимо установить плагин Advanced Editor Tools и в нем активировать опцию «Stop removing the <p> and <br /> tags when saving and show them in the Text editor«
woocommerce вывод отзывов на главной
Если необходимо вывести определенное количество отзывов в определенном месте шаблона или на определенной странице, то можно воспользоваться следующим кодом:
function get_woo_reviews()
{
$comments = get_comments(
array(
'status' => 'approve',
'post_status' => 'publish',
'post_type' => 'product',
)
);
shuffle($comments);
$comments = array_slice( $comments, 0, 5 );
$html = '<ul>';
foreach( $comments as $comment ) :
$html .= '<li><h2>'.get_the_title( $comment->comment_post_ID ).'</h2>';
$html .= '<p>' .$comment->comment_content.'</p>';
$html .= "<p>Posted By :".$comment->comment_author." On ".$comment->comment_date. "</p></li>";
endforeach;
$html .= '</ul>';
ob_start();
echo $html;
$html = ob_get_contents();
ob_end_clean();
return $html;
}
add_shortcode('woo_reviews', 'get_woo_reviews');
И потом использовать:
echo do_shortcode( "[woo_reviews]" );
Ускорение сайта wp+woocommerce
Новые моменты, которых ранее не знал:
- К известному плагину autoptimize идет дополнение async script, позволяющее загружать скрипты асинхронно. jquery необходимо сразу добавлять в исключение. Также придется исключить библиотеки вызов функций которых происходит прямо в коде до объявления скрипта.
- Можно отдельно в functions.php отключать даже системные вордпрессовские скрипты. Но тут нужно четко знать что и зачем отклюается,т.к. потом не только в публичной части, но и в админке могут не работать некоторые функции.
Вывод автора в шаблоне вордпресс
<?php
echo "Author: ";
the_author_meta('display_name', $post->post_author ); ?>
MySQL оставить рандомное количество комментариев
Перед выполнением основного запросы нужно обязательно вначале установить все комментарии как одобренные с помощью запроса
UPDATE in_comments u1 SET u1.comment_approved = 1 WHERE 1
И после этого сразу же выполнять основной запрос.
SET @row_number1 = 0; SET @row_number11 = 0; SET @max_number11 = 5; SET @min_number11 = 3; UPDATE in_comments u1 SET u1.comment_approved = 0 WHERE u1.comment_ID in ( select aaa1.comment_ID from ( SELECT (@row_number1:=@row_number1 + 1) AS num1, a1.* FROM in_comments a1 order by a1.comment_post_ID, a1.comment_date desc, a1.comment_ID asc) aaa1, ( select aa1.* from (SELECT (@row_number11:=@row_number11 + 1) AS num2, a1.* FROM in_comments a1 order by a1.comment_post_ID, a1.comment_date desc, a1.comment_ID asc) aa1, (SELECT a2.* FROM in_comments a2 where a2.comment_date = (select max(ta2.comment_date) as max_date from in_comments ta2 where ta2.comment_post_ID = a2.comment_post_ID) order by a2.comment_post_ID, a2.comment_date desc, a2.comment_ID asc) aa2 where aa1.comment_ID = aa2.comment_ID and aa1.comment_post_ID = aa2.comment_post_ID ) aaa2 where aaa1.num1 >= aaa2.num2 + FLOOR(RAND() * (@max_number11 - @min_number11 + 1)) + @min_number11 and aaa1.comment_post_ID = aaa2.comment_post_ID )
Обновление minicart после изменения количества товара
/*ajax minicart update*/
add_filter( 'woocommerce_add_to_cart_fragments', 'header_add_to_cart_fragment', 30, 1 );
function header_add_to_cart_fragment( $fragments ) {
global $woocommerce;
ob_start();
?>
<div class="count cart_totals2">
<span class="amount"><?php echo WC()->cart->get_cart_subtotal(); ?></span>
<span class="count"><?php echo WC()->cart->get_cart_contents_count();?></span>
</div>
<?php
$fragments['div.cart_totals2'] = ob_get_clean();
return $fragments;
}
Данный код добавляется в functions.php и позволяет при изменении количества товаров на странице cart по ajax обновить содержимое minicart. В данном случае это div с классом cart_totals2.
Привязать товары к автору
/* allow show products for author*/
add_action('pre_get_posts', 'my_pre_get_posts');
function my_pre_get_posts($query) {
if ($query->is_author() && $query->is_main_query()) {
$query->set('post_type', 'product');
}
}
Добавить alt через functions.php вордпресс
Для того, чтобы ко всем изображениям сайта, созданного на cms wordpress добавить альт необходимо в functions.php добавить следующий код
function add_alt_tags($content)
{
global $post;
preg_match_all('/<img (.*?)\/>/', $content, $images);
if(!is_null($images))
{
foreach($images[1] as $index => $value)
{
if(!preg_match('/alt=/', $value))
{
$new_img = str_replace('<img', '<img alt="'.$post->post_title.'"', $images[0][$index]);
$content = str_replace($images[0][$index], $new_img, $content);
}
}
}
return $content;
}
add_filter('the_content', 'add_alt_tags', 99999);
Два раза выводится title
Обнаружил проблему, что на одном из обслуживаемых сайтов два раза формируется title
title мультиязычного сайта вордпресс
На сайтах, созданных с помощью cms wordpress для создания версий сайта с различными языками чаще всего используются плагины wpml и loco translate. Но мета теги: title и description к версиям сайта применяются только на одном языке, те, которые прописаны или в свойствах сайта, или в настройках плагина сео оптимизации (например, all in one seo pack). Читать далее «title мультиязычного сайта вордпресс»
