• Сайт на вордпресе, он сломался?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Скорее всего шорткоды должны иметь четкий формат в этом случае. Стандартный WYSIWIG редактор вп, преобразовывает некоторые символы по своему, поэтому всё что нужно сделать, то зайти и поменять символы » на ". (Для этого в редакторе выбрать режим html, вместо визуального представления)
    Ответ написан
  • Nginx as reverse proxy: 1% запросов падает по тайм-ауту (504). Что можно предпринять?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    в конфиге по домену увеличиваем таймаут, который по дефолту минимальный. После этого можно изучить, почему долго обрабатывается запрос или производить дальнейшую оптимизацию (если нужно)

    Добавляем в /etc/nginx/sites-enabled/domain.com.conf в секцию location / инструкцию:

    fastcgi_read_timeout 600;  # ждать обработку 600 сек, например
    Ответ написан
    Комментировать
  • Как реализовать подобный чат?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Готовый вариант посмотреть здесь
    Ответ написан
    Комментировать
  • На каких технологиях разрабатывать чат?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Meteor может подойти для таких вещей. Комбайн конечно, но зато и сервер, и клиент, и реалтайм у тебя уже будет на старте.

    Простой старт

    Пример популярного open-source чата

    Cлоган у них "Meteor is an open source platform for web, mobile, and desktop." намекает на то что можно даже под телефоны скомпилировать из экосистемы метеор
    Ответ написан
    Комментировать
  • Как закрыть часть url от индексации в robots?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Значение пути используется для определения того, должно ли правило применяться к конкретному URL на сайте. За исключением подстановочных знаков путь должен совпадать с началом любого действующего и подходящего URL. Не 7-битные символы ASCII в пути могут быть добавлены как символы UTF-8 или как экранированные значения в кодировке UTF-8

    Google, Bing, Yahoo и Ask поддерживают определенные подстановочные знаки для значений путей. Вот их полный список:

    • * обозначает 0 или более экземпляров любого действительного символа.

    • $ обозначает конец URL.


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

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    https://developer.mozilla.org/en-US/docs/Web/Event...

    Потому что paste - это событие и на него в качестве слушателя уже вешаем тело функции

    document.querySelector('.my').addEventListener('paste', (e) => {
      console.log(e);
    
      e.preventDefault();
      e.stopPropagation();
    
      // Get the clipboard data
      let paste = (e.clipboardData || window.clipboardData).getData('text');
    
      // Твой код
    });
    Ответ написан
    Комментировать
  • Как добавить обновление блока в историю?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    возможное решение - carlofontanos.com/using-history-js-with-ajax . Я так думаю надо подкорректировать только под свои нужды и помимо pushState использовать .log(state) и ещё один обработчик события statechange
    Ответ написан
    Комментировать
  • Как получить id рубрики текущей записи?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    $cat = get_the_category($post->ID);
    
    // ID категории
    $cat->cat_ID
    
    // Название категории
    $cat->cat_name 
    
    // Альтернативное название категории
    $cat->category_nicename
    
    // Описание категории (задается на странице редактирования категории)
    $cat->category_description
    
    // ID родительской категории
    $cat->category_parent 
    
    // Количество записей в категории
    $cat->category_count
    Ответ написан
    1 комментарий
  • Как в wordpress в записях сделать вывод постов из категорий этой записи?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Вывод плиткой. Примерно так:

    1 2
    3 4

    Взял код со своего одного старого проекта. Вроде рабочий.

    В шаблоне single.php, после контента поста:

    <?php
    // получаем рубрики текущего поста
    $categories = get_the_category($post->ID);
    
    if ($categories) {
        $category_ids = array();
        foreach ($categories as $individual_category) {
            // пихаем айдишники рубрик поста в массив
            $category_ids[] = $individual_category->term_id;
        }
        $args = array(
            'category__in' => $category_ids,   // выводим из этих рубрик только
            'post__not_in' => array($post->ID),   //  исключаем текущий пост
            'showposts' => 4, // кол-во постов
            'caller_get_posts' => 1,
            'orderby' => 'rand' // в случайном порядке
        );
    
        $my_query = new wp_query($args);
        if ($my_query->have_posts()) {
            echo '<div class="more">';
            $cssMap = array(0 => "first", 1 => "last");
            $counter = 0;
            while ($my_query->have_posts()) {
                $my_query->the_post(); ?>
                <?php $class = $cssMap[$counter++ % 2]; ?>
                <div class="more-post left <?php print $class; ?>">
                    <?php the_excerpt(''); // анонс поста ?>
                </div>
                <?php if ($class == $cssMap[1]) { ?>
                    <div class="clearfix"></div>
                <?php
                }
            }
            echo '</div>';
        }
        wp_reset_query();
    }


    ну понятно, clearfix класс после 2 блоков очищает обтекание, дабы верстка не поплыла, а класс left задает обтекание. Ну блокам еще ширину можно задать 50%. Вроде все
    Ответ написан
    Комментировать
  • Как растянуть видео на всю ширину в Wordpress?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Есть идея, как это сделать еще к тому же и адаптивно.
    Если вставляешь через визуальный редактор, то потом перейти в режим «html» (или сразу оттуда). Смысл в том, что надо iframe засунуть в див, ему пару стилей дать, самому iframe тоже.

    НТМL:

    <div class="embed-responsive embed-responsive-16by9">
       <iframe class="embed-responsive-item" src="..." frameborder="0" allowfullscreen></iframe>
    </div>


    CSS:

    .embed-responsive-16by9 {
        padding-bottom: 56.25% !important;
    }
    
    .embed-responsive {
        position: relative;
        display: block;
        height: 0;
        padding: 0;
        overflow: hidden;
    }
    
    .embed-responsive .embed-responsive-item, .embed-responsive iframe {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 0;
    }


    Ну понятно, в src=... вставляешь ссылку от ютуба

    https://jsfiddle.net/egsvu8bz/
    Ответ написан
    2 комментария
  • Как к переменной присвоить большой html код с элементами php?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    1. Использовать функции буферизации вывода ob_start(); .... бла-бла-бла .... $out = ob_get_clean(); , почитать здесь
    2. Использовать оператор конкатенции:

    $out = "<strong>lorem</strong>:<br>";
    $out .= "ipsum: <span style='color:steelblue;'>" . $value . "</span> <br>";
    // ...


    3. Синтаксис nowdoc?
    Ответ написан
    Комментировать
  • Создания меню html/css/js?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Ответ написан
    Комментировать
  • Как сделать пункт меню активным при прокрутке?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Тут пример. Давно делал одним товарищам лэндинг. Уже не помню. Но там на скролл повешен обработчик. Значения dp1..dp5 вычислял экспериментальным путем. Делал событие on scroll и выводил в console.log значение scrolled. Это отклонение по вертикали при проскролливании. А там уже тупое сравнение и addClass или removeClass

    Функцияю помню сделал не очень элегантной, но решение рабочее. Инспектор кода, надеюсь сможете открыть, посмотреть и реализовать аналогично?)

    window.onscroll = function() {
            var scrolled = window.pageYOffset || document.documentElement.scrollTop,
                dp1 = 500,
                dp2 = 1720,
                dp3 = 2287,
                dp4 = 2990,
                dp5 = 4007,
                nav = $('.navbar-inverse'),
                arrow = $('#arrow-upper');
            if(scrolled >= 0 && scrolled < dp1){
                if(!nav.hasClass('hide')){
                    nav.addClass('hide');
                    arrow.addClass('hide');
                }
            }
            if(scrolled > dp1){
                if(nav.hasClass('hide')){
                    nav.removeClass('hide');
                    arrow.removeClass('hide');
                }
            }
            if(scrolled > dp1 && scrolled < dp2){
                $('.nav li').removeClass('active');
                $('.nav li:nth-child(1)').addClass('active');
            }
            if(scrolled > dp2 && scrolled < dp3){
                $('.nav li').removeClass('active');
                $('.nav li:nth-child(2)').addClass('active');
            }
            if(scrolled > dp3 && scrolled < dp4){
                $('.nav li').removeClass('active');
                $('.nav li:nth-child(3)').addClass('active');
            }
            if(scrolled > dp4 && scrolled < dp5){
                $('.nav li').removeClass('active');
                $('.nav li:nth-child(4)').addClass('active');
            }
            if(scrolled > dp5){
                $('.nav li').removeClass('active');
                $('.nav li:nth-child(5)').addClass('active');
            }
        }
    Ответ написан
    Комментировать
  • Изменить id страницы на текст?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Не совсем понял вопрос, но на уровне интуиции отвечу. Заходим в админ панель:

    Настройки » Постоянные ссылки » Выбираем к примеру Название записи

    a3d3d765bce2408bb03b256df9601f14.png

    Сохраняемся и теперь каждая запись в рамках обработки ссылок на вордпресс будет представляться именно тем форматом, который выбрали
    Ответ написан
    1 комментарий
  • Как обновить таблицу после отправки комментария в вордпрессе?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Не совсем понятно, что у вас не получилось. Попробуйте такой код вставить в functions.php:
    add_action( 'comment_post', 'ins_message_function', 10, 2 );
    function ins_message_function( $comment_ID, $comment_approved ) {
    	if( 1 === $comment_approved ){
    	global $wpdb;
      $wpdb->update( 'wp_comments',
    	array( 'comment_custom' => 'то что хотим обновить' ),
    	array( 'comment_ID' => $comment_ID ),    // там где текущий коммент
    	array( '%s' ), // формат, %s — строка, того что хотим обновить
    	array( '%d' ) // формат, %d — число id текущего коммента
         );
       }
    }
    Ответ написан
    Комментировать
  • Определить, в какой диапазон попадает число?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Для этого есть встроенный оператор BETWEEN

    В самом кратком и простом упрощении:
    SELECT * FROM `diaposon` WHERE 3.5 BETWEEN `d1` AND `d2`
    Ответ написан
    Комментировать
  • Почему ссылка не работает на логотипе? И еще вопрос по адаптивности?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    А для чего z-index: -1000 ? Если убрать, то ссылка на лого будет работать:

    5355981e63f94da9a99d845950cf0ebe.png

    По поводу адаптивности, создавайте медиа-запросы и корректируйте css элементов, так как вам нужно, например в соответствии с макетом дизайнера
    Ответ написан
    2 комментария
  • Натяжка на WP - как реализовать вывод страницы на странице?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Так как это по сути модальные окошки на главной странице можно поступить следующим образом, приведу часть кода с реального проекта, может поможет:

    В стандартном, а точнее настраиваемом ( get_posts( ... ) ) Loop WordPress выводим что хотим, ну к примеру пускай постами (пускай они обязательно относятся к одной какой то интересующей категории, назовем ее как нибудь, исходя из твоего контекста, я бы назвал рубрику Главная):

    <?php
    $posts = get_posts(array(
       'numberposts' => -1,
       'offset' => 0,
       'category' => 'номер категории твоей интересующей — id, число, подсмотреть в админке можно',
       'orderby' => 'post_date',
       'order' => 'ASC',
       'post_type' => 'post',
       'post_status' => 'publish'
    ));
    foreach($posts as $post){ 
       setup_postdata($post);  
       // формат вывода
    	$id = str_replace('/', '', str_replace('http://' . $_SERVER['SERVER_NAME'], '', get_the_permalink()));
            // возьмем к примеру, что h2, а в нем a ссылка — это тот элемент, по клику на который вылазит модальное окно
            <h2><a href="#" data-toggle="modal" data-target="#<?= $id ?>"><? the_title() ?></a></h2>
            <div class="modal fade" id="<?= $id ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
       <div class="modal-dialog">
          <div class="modal-content">
             <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                <div class="modal-body">
                   <?the_content()?>
                 </div>
              </div>
          </div>
        </div>
    }  
    wp_reset_postdata();
    if(isset($_GET['post_id']) && !empty($_GET['post_id'])){
       $post_id = trim(strip_tags($_GET['post_id']));
           ?>
              <script>
                 $(function(){
                      $('#<?=$post_id?>').modal();
                  });
               </script>
             <?
     }


    В том месте, где формат вывода, нужно соответственно (к примеру) подключить модальные окна от бутстрап ( но в твоем шаблоне там отдельная разметка и js, нужно уже по ситуации смотреть, чтобы все заработало, но суть реализации от этого не страдает )

    В файле functions.php:

    function my_single_template($single)
    {
        global $wp_query, $post;
        foreach ((array)get_the_category() as $cat) {
            if (file_exists(get_template_directory() . '/single-' . $cat->slug . '.php')) {
                return get_template_directory() . '/single-' . $cat->slug . '.php';
            } elseif (file_exists('/single-' . $cat->term_id . '.php')) {
                return get_template_directory() . '/single-' . $cat->term_id . '.php';
            }
        }
    }
    
    // подключим еще jquery, если в твоей теме он не используется, ну можно как то так, так как он нужен модальных окон бутстрап
    function my_scripts_method()
    {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js');
        wp_enqueue_script('jquery');
    }
    add_action('wp_enqueue_scripts', 'my_scripts_method');


    Потом идем и создаем файл в теме single-{слаг-категории}.php, отвечающий за показ отдельного поста, относящийся к твоей интересующей категории, в нем надо задать будет:

    <?php
    header('Location: http://' . $_SERVER["SERVER_NAME"] . '/?post_id=' . str_replace('/', '', str_replace('http://' . $_SERVER['SERVER_NAME'], '', get_the_permalink($post->ID))));
    exit;


    Это надо чтобы не переходило на url такого поста, а открывало модальное окно определенное на главной.

    Проблематика была схожая в одном из моих проектов, решение рабочее. Как я уже сказал, ранее

    В том месте, где формат вывода, нужно соответственно (к примеру) подключить модальные окна от бутстрап ( но в твоем шаблоне там отдельная разметка и js, нужно уже по ситуации смотреть, чтобы все заработало, но суть реализации от этого не страдает )


    Нужно смотреть и адаптировать под себя:
    • Разметку модальных окон в твоей теме
    • В том месте, где окно вызывается в бутстрапе через .modal( ... ) надо заменить на вызов показа модального окна соответственно в твоих Js modal, а там уже смотри сам как работает вызов


    P.S: Шаблон прикольный, кстати)
    Ответ написан
    Комментировать
  • Как поднять текст если тэг мешает?

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    .ico {
    float: left;
    }
    
    .clear {
    clear: both;
    }


    После див с классом box добавить сразу:

    <div class="clear"></div>

    Смысл в том, чтобы задать float:left; 2 элементам, которые предполагаются располагаться рядом, картинке и надписи, чтобы были на одном уровне, а потом отменить обтекание, чтобы не порушить верстку ниже
    Ответ написан
    3 комментария