Редактор wp удаляет p теги. Что делать.

Для того, чтобы редкатор вордпресс не удалял теги параграфа и переноса необходимо установить плагин  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 отключать даже системные вордпрессовские скрипты. Но тут нужно четко знать что и зачем отклюается,т.к. потом не только в публичной части, но и в админке могут не работать некоторые функции.

Читать далее «Ускорение сайта wp+woocommerce»

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 мультиязычного сайта вордпресс

На сайтах, созданных с помощью cms wordpress для создания версий сайта с различными языками чаще всего используются  плагины wpml и loco translate. Но мета теги: title и description к версиям сайта применяются только на одном языке, те, которые прописаны или в свойствах сайта, или в настройках плагина сео оптимизации (например, all in one seo pack). Читать далее «title мультиязычного сайта вордпресс»