Исключить из кеширования

104
08 февраля 2022, 16:30

помогите, пожалуйста, исключить из кеширования следующий код (одна из функций в файле techmarket-woocommerce-template-functions.php):

if ( ! function_exists( 'techmarket_header_wishlist' ) ) {
/**
 * Displays a link to wishlist page in header
 */
function techmarket_header_wishlist() {
    if( function_exists( 'techmarket_get_wishlist_url' ) ) {
        ?>
        <ul class="header-wishlist nav navbar-nav">
            <li class="nav-item">
                <a href="<?php echo esc_attr( techmarket_get_wishlist_url() ); ?>" class="nav-link"><i class="tm-wishlist-icon <?php echo esc_attr( apply_filters( 'techmarket_wishlist_icon', 'tm tm-favorites' ) ); ?>"></i><span id="top-cart-wishlist-count" class="tm-wcwl-ajax-count value"><?php echo yith_wcwl_count_products(); ?></span></a>
            </li>
        </ul>
        <?php
    }
}

}

Данный код отвечает за список избранных товаров - https://prnt.sc/qk21d2 (на скрине сердечко с цифрой 13 - количество избранных товаров). Проблема в том, что данное количество кешируется. Сайт сделан на вордпрессе, вукоммерс, плагин кеширования W3 Total Cache (бесплатная версия).

Answer 1

Попробуйте в wp-config.php добавить

define('W3TC_DYNAMIC_SECURITY', 'my_string');

И заменить в шаблоне вызов этой функции:

<!-- mfunc techmarket_header_wishlist() --><!-- /mfunc -->
Answer 2

Все получилось! Данное решение работает для плагина кеширования W3 Total Cache версия 0.12.0, WordPress 5.3.2

  1. Шаг - добавил в function.php темы следующую строчку (при добавлении в файл wp-config.php - не работало) - define( 'W3TC_DYNAMIC_SECURITY', 'SOME_SECURE_STRING_YOU_CREATE' );

  2. Вызов функции <?php echo yith_wcwl_count_products(); ?> оформил следующим образом - <!-- mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> --> echo yith_wcwl_count_products(); <!-- /mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> -->

Готовая функция полностью:

if ( ! function_exists( 'techmarket_header_wishlist' ) ) {
    /**
     * Displays a link to wishlist page in header
     */
    function techmarket_header_wishlist() {
        if( function_exists( 'techmarket_get_wishlist_url' ) ) {
            ?>
            <ul class="header-wishlist nav navbar-nav">
                <li class="nav-item">
                    <a href="<?php echo esc_attr( techmarket_get_wishlist_url() ); ?>" class="nav-link"><i class="tm-wishlist-icon <?php echo esc_attr( apply_filters( 'techmarket_wishlist_icon', 'tm tm-favorites' ) ); ?>"></i><span id="top-cart-wishlist-count" class="tm-wcwl-ajax-count value"><!-- mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> --> echo yith_wcwl_count_products(); <!-- /mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> --></span></a>
                </li>
            </ul>
            <?php
        }
    }
}
READ ALSO
Как вернуть значение базы данных meta_value в Wordpress

Как вернуть значение базы данных meta_value в Wordpress

Есть wordpress фреймворк Unyson, работает на bootstrapПоддерживает расширения и кастомные опции

111
Блок catch не срабатывает (PHP, конструкция try catch)

Блок catch не срабатывает (PHP, конструкция try catch)

У меня конечно элементарный вопрос, но вот никак не могу понять принцип работы конструкции try-catch на php

90
PhpMyadmin ошибка

PhpMyadmin ошибка

У меня ошибка в phpMyadmin, пропали все базы данныхКогда только захожу пишет

139