Ответы пользователя по тегу WordPress
  • Как в WP асинхронно выполнять функцию (после отправки пользователю шаблона)?

    @IvanKalinin Автор вопроса
    Я пошел немного другим путем.
    В файле, который генерирует шаблон в конец добавил такой код:
    <?php
    function print_inline_js() {
    ?>
    <script type="text/javascript">
      jQuery(document).ready(function($){
        $.get("<?php echo get_template_directory_uri(); ?>/cache_images.php");
      });
    </script>
    <?php
    }
    add_action( 'wp_footer', 'print_inline_js' );


    Когда пользователь загружает страницу она посылает GET запрос к файлу cache_images.php с моментальным пустым ответом

    в котором

    <?php
    
    class Cache_images {
      public function cache_images() {
        // прерывание запроса
        fastcgi_finish_request();
        // Далее код получения, уменьшения, сохранения изображений на мой сервер, который никак не отражается на ожидании конечного пользователя
    }
    
    $instance = new Cache_images();
    $instance->cache_images();


    В итоге все работает красиво и без ожиданий для все пользователей, даже для которых попали на кеширование. (им сразу отдается оригинальное изображение)
    Ответ написан
    Комментировать
  • Почему исчезает фон в мобильном виде сайта?

    @IvanKalinin
    Во первых.
    В тег <header> вообще никакой фон не добавляется (в т.ч. на десктопах)
    <header id="masthead" class="site-header" style="background-image: url();background-position: center; " role="banner">
    ...
    </header>


    Фоновое изображение, которое мы видим, приходит с <body>
    body.custom-background {
        background-image: url(http:\/\/www.xn----ftbdbyd3b0cg4c.xn--p1ai\/wp-content\/uploads\/2016\/12\/1099364.jpg);
        background-position: center center;
        background-size: auto;
        background-repeat: no-repeat;
        background-attachment: fixed;
    }


    Т.к. фон примеряется ко всему документу (<body>) ( у которого высота на мобильном устройстве 5000 - 6000px), размер указан auto, что примерно равно ширине экрана, а высота фона пропорциональна и сам фон не повторяется, то он позиционируется где-то посередине (2500 - 3000px) не видимой для нас области.
    Как известно, background-attachment имеет проблемы на мобильных устройствах.

    background-attachment прекрасно работает на десктопах, поэтому при инспектировании фон отображается правильно, в отличии от мобильных по описаной выше причине
    Ответ написан
    Комментировать
  • Как сделать мобильную версию сайта правильно?

    @IvanKalinin
    1. Масшатибрование невозможно потому что оно у вас отключено тут
    <meta name="viewport" content="width=device-width, initial-scale=1.0">


    2. Для мобильной версии сайта еще нужно будет дописать стили, используя media query
    Ответ написан
    5 комментариев