WP File Cache 1.2.1

Теперь точно последний :-)

Я нарушил своё обещание и написал новую версию плагина  — 1.2.1. Но эта версия будет последней (скорее всего).

Что изменилось:

  • оптимизирован PHP-код, ускорена работа методов класса FileCache (лишние проверки перенесены в функции wp_cache_xxx, что позволило избежать повторного исполнения одного и того же кода);
  • блокировка файла при записи;
  • требует PHP версии не ниже 5.1.0;
  • добавлена совместимость с WP 2.6;
  • запись файла стала чуть быстрее;
  • не убьёт , если каталог wp-content/plugins/file-cache удалён, а wp-content/object-cache.php по тем или иным причинам остался.

Скачать плагин WP File Cache

Большое спасибо Алексею Лободину за тестирование!

Добавить в закладки

Связанные записи

Автор: Vladimir; опубликовано в: Плагины WordPress; метки: WordPress, WP File Cache, кэш, плагин
14
Янв
2010

RSS Комментарии к статье «WP File Cache 1.2.1» (32)  »

  1. Muse

    плагин не кэширует подобные запросы

    можно как-то посодействовать, чтобы они обрабатывались?

    • Muse

      вордпресс съел код, вот исправленный

      [-]
      View Code PHP
      $people = get_the_terms($post->ID , 'people');
      if ($people == '') {} else {
          echo "<ul>";
          foreach($people as $person) {
               $exist = post_exist($person->slug);
               if($exist == '') {
               echo "<li>$person->name</li>";
               } else {
                   echo "<li><a href=\"/$person->slug/\">$person->name</a></li>";
               }
          }
          echo "</ul>";
      }

      “если пост есть – выводим название вместе с ссылкой, если нет – просто название”.

      • А что именное не кэшируется? post_exists() или get_the_terms()?

        • Muse

          post_exists()

          [-]
          View Code PHP
          function post_exist($title) {
              global $wpdb;
              $post_slug = stripslashes(sanitize_post_field('post_name', $title, 0, 'db'));
                  $query = "SELECT ID FROM $wpdb->posts WHERE 1=1 AND post_status = 'publish' AND post_type = 'post'";
              $args = array();
              if (!empty ($title)) {
                  $query .= ' AND post_name = %s';
                  $args[] = $post_slug;
              }
              if (!empty ($args))
                  return $wpdb->get_var($wpdb->prepare($query, $args));
              return 0;
          }
          • Как-то так:

            [-]
            View Code PHP

            function post_exists($title)
            {
                $res = wp_cache_get($title, 'existing-posts');
                if (false === $res) {
                    global $wpdb;
                    $query = "SELECT ID FROM $wpdb->posts WHERE 1=1 AND post_status = 'publish' AND post_type = 'post'";
                    $args = array();
                    if (!empty ($title)) {
                        $post_slug = stripslashes(sanitize_post_field('post_name', $title,  0, 'db'));
                        $query .= ' AND post_name = %s';
                        $args[] = $post_slug;
                    }

                    if (!empty ($args))
                        $res = $wpdb->get_var($wpdb->prepare($query, $args));
                    }
                    else {
                        $res = 0;
                    }

                    wp_cache_set($title, $res, 'existing-posts');
                }

                return $res;
            }

            Группу existing-posts, вероятно, нужно чистить при изменении статуса записи и удалении записи.

            PS — а в WordPress вроде бы существует функция post_exists()?

  2. Alex

    Владимир, спасибо за этот отличный плагин! Скорость загрузки страниц уменьшилась вдвое, но появилось много ошибок в админке. Из-за этого пришлось отказаться от использования плагина.
    Если можно, сделайте, пожалуйста, в следующих версиях возможность отключения кеширования для админки. Спасибо.

    • А что за ошибки? И какие плагины стоят? Отказаться от кэширования в админке будет проблемно, так как кэш может устареть.

Оставить комментарий к записи «WP File Cache 1.2.1»

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Изображения должны быть включены!

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя