Задать вопрос
  • Переход по id передачей параметров. Как сделать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    +1 к "пример у вас в примере" от Андрей. Это Javascript. Весь код - в браузере, открываете консоль (F12) и изучаете, как это сделано. Если не можете понять с чего начать - еще один +1 к "учите JS". Без обид. Дело не в том, что нам ту лень объяснять, дело в том, что это требует определенного багажа знаний. Ну не бывает в таких ситуациях "нажать сюда, вставить вот это - и все работает" - это кастомный функционал. Ничего сложного для того, кто знает JS на среднем уровне, и одновременно - квантовая физика для новичка.
    Ответ написан
    Комментировать
  • Как сделать такую карусель?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ответ написан
    Комментировать
  • Ноутбук на Windows 8?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Подождите 2 недели, установите бесплатно Windows 10.
    Ответ написан
    Комментировать
  • Безопасно и правильно ли хранить какую-либо информацию в data-id атрибуте элемента?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Простой пример из жизни, прям вот вчера код дописан. Есть сайт, у юзеров авторизованных есть фронтенд и возможность заливать картинки, музыку и видео. Также, этот контент юзер может в любой момент удалить. На каждом объекте при наведении появляется иконка для удаления, по нажатию на нее на сервер аяксом уходит запрос и удаляет файл. Айдишка файла хранится как раз в data- артибуте. Если так топорно и оставить, это означает, что авторизованный пользователь может подменить ID на любую другую и удалить чужой файл, а это нехорошо. Посему на сервере мы не просто бездумно удаляем файлы, а еще делаем несколько проверок. Проверяем пользователя и его права на удаление данного типа контента, проверяем является ли он владельцем этого файла. Если все ок - удаляем. То есть, теоретически, он может удалять свои файлы путем подставления айдишек, ну и пусть забавляется. Но навредить другим он уже не сможет.
    Ответ написан
    6 комментариев
  • Как изменить отображения миниатюр в медиатеке Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    WordPress использует несколько разных предустановленных размеров, вы также можете создавать свои. Для этого есть функции add_image_size(), remove_image_size(). Если вам нужно изменить именно формат thumbnail, нужно изменить опцию:

    add_action( 'after_setup_theme', 'my_theme_setup' );
    function my_theme_setup() {
        update_option( 'thumbnail_crop', 0 );
    }


    После этого нужно перегенерить все превьюшки. Например, плагином Ajax Thumbnail Rebuild.
    Ответ написан
    Комментировать
  • Из какой CMS картинка?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Картинка из Gravatar, как уже подсказали. Означает, что пользователь на Gravatar не зареган. Используется Gravatar в WordPress, возможно еще в каких-то CMS.
    Ответ написан
    Комментировать
  • Какую использовать программу для просмотра иконочных шрифтов?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Для неустановленных попробуйте NexusFont, MainType, Suitcase Fusion. Они же работают и с установленными.
    Ответ написан
    2 комментария
  • Как конвертировать базу данных MySQL сайта на Wordpress из utf8mb4_general_ci в utf8_general_ci?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вы шутите? VDS - это же виртуальный сервер, а не shared-хостинг. Одна из основных прелестей VDS/VPS - возможность установки нужного софта и его обновление до любых версий. Просто обновите MySQL. Если же на этом VDS у вас нет доступа для этого, то что это вообще за сервис такой? +1 к Дмитрий Энтелис - уходите оттуда.

    И еще хинт - если не будете переходить, а будете использовать обычную utf8 - отключите Emoji. Именно им нужна mb4 в первую очередь, а раз вы не будете их использовать - отключите их поддержку, чтобы WordPress не пихал вам в страницы ненужные скрипты и стили.
    Ответ написан
  • Почему не работает форма php?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    maks843: не будет так шаблон работать, WordPress не понимает, что это за шаблон. Почитайте Template Hierarchy. У вас форма принудительно уходит на mail.php и передает ей данные полей через $_POST. Именно в этом файле нужно проводить обработку формы. Или же, правильнее, для самой формы action указать пустой - тогда форма будет отправлять данные на ту же страницу, где она размещена (перезагрузка страницы по сути). Далее определите, какой шаблон эта страница использует и в нем уже добавляйте обработчик, только обязательно через проверку if( isset($_POST['name']) && isset($_POST['email']) && isset($_POST['message']) ). Кстати, у вас textarea в коде формы стоит без атрибута name, каким образом вы надеетесь эти данные получать? Также, у вас поле для Subject имеет тип type="subject" - такого не существует.

    Кроме того, ряд ваших IFов лучше переписать как тернарные операторы или if/else, unset делать не нужно. Ну и сами данные $_POST еще надо валидировать и фильтровать, у вас сейчас нет никакой защиты от передачи вредоносных данных.

    <div class="window-container fadeInDown animated">
    <button class="close">Закрыть</button>
        <h1>Напишите мне письмо</h1>
                <form action="" method="post">
                    <input class="first" type="text" name="name" placeholder="Имя" required><br>
                    <input class="first" type="email" name="email" placeholder="Email" required><br>
                    <input class="first" type="text" name="subject" placeholder="Тема"><br>
                    <textarea class="input textarea" name="message" placeholder="Сообщение" required></textarea><br>
                    <input type="submit" class="button" value="Отправить">
                </form>
    </div>


    if( isset($_POST['name']) && isset($_POST['email']) && isset($_POST['message']) ) {
    
        $name = sanitize_text_field( $_POST['name'] );
        $email = sanitize_email( $_POST['email'] );
        $subject = ( !empty($_POST['subject']) ) ? sanitize_text_field( $_POST['subject'] ) : 'Default subject';
        $message = sanitize_text_field( $_POST['message'] );
    
        $to = 'your@email.com';
        $headers = 'From: ' . $name . ' <' . $email . '>' . "\r\n";
        $send = wp_mail( $to, $subject, $message, $headers ); // returns true/false
    
        echo ( true == $send ) ? 'Success message' : 'Error message';
    
    }


    Проверку, заполнены ли все обязательные поля, надо делать javascript'ом, плюс у вас есть атрибут required, тут уже браузер убедится, что поля заполнены. Также, не мешало бы валидировать формат email еще до отправки данных на сервер (или использовать HTML5 тип input type="email").

    В общем, если честно, я не совсем понимаю, зачем вы пытаетесь вручную делать то, в чем пока еще смутно разбираетесь, вместо того, чтобы использовать один из сотни плагинов для форм обратной связи, которые уже учитывают безопасность, валидацию данных, обработку черех Ajax и тд. Если же все-таки хотите освоить эту сферу - начните последовательно изучать то, как правильно нужно работать с формами. Уроков в сети масса.
    Ответ написан
  • Какая CMS выдержит большую нагрузку?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Статические генераторы.
    2. WordPress как бекэнд + WP REST API + фронтэнд на каком-нибудь Angular.
    Ответ написан
    Комментировать
  • Какое будущее у конструкторов wix или ucos?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Пока будет жива ЦА, которой таких решений достаточно - будут жить. А ЦА будет всегда.
    Ну и, не стоит все же ставить Wix и Ucoz в одну линейку, это как мед и говно сравнивать :)
    Ответ написан
    Комментировать
  • Стараетесь ли вы использовать flex?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Используем по максимуму. Если есть требование под IE8-9, тогда нет, но такой проект обходится клиенту дороже. После недолгого объяснения с показом статистики IE8-9 vs Mobile Devices (плюс динамику роста последних) обычно удается убедить клиента, что не нужен ему IE8-9, а вот всякие современные плюшки, media-queries и тд - очень даже нужны.
    Ответ написан
    Комментировать
  • Почему нельзя просто переносить код в woocomerce и почему не работает так?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Потому что это вам не хтмл, а php, при чем это - шаблон, который подгружается в определенном месте, где доступны определенные переменные и их значения определены - функции в этом шаблоне зависят от этих значений и без них работать корректно не могут. А подобной копипастой, без учета контекста исполнения, вы вырываете с мясом из одного места, и вставляете непонятно куда. Для подобных ситуаций есть хуки и custom templates. Лучше опишите подробно задачу - что есть и что нужно сделать, тогда больше шансов, что сможем помочь.
    Ответ написан
  • Галерея для Wordrress с поп-апами?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ответ написан
    Комментировать
  • Можно ли получить ссылку на кнопку Send Message в LinkedIn?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Сразу отправить сообщение с вашего сайта в LikedIn точно не получится, а вот на страницу написания - вполне можно. Ссылка должна быть вида:

    https://www.linkedin.com/inbox/#compose?subject=&connId=ХХХХХХХХ


    Где ХХХХХХХХ - ID пользователя LinkedIn. Как видите, можно даже тему письма сразу установить.
    Ответ написан
    Комментировать
  • Как добавить свои кнопки соц сетей addthis в тему wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    У AddThis есть родной плагин для WP, который все делает как надо. Установите и не страдайте.
    Ответ написан
  • Как сделать форму обратной связи wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если action у вас - send.php, то после нажатия на submit браузер уйдет на эту страницу, передав ей все заполненные поля в массиве $_POST. Вот его и надо в этом send.php обработать, обязательно очистить и экранировать, и отправить письмо с помощью функции wp_mail(). Поскольку send.php эту отдельный файл, который не является шаблоном темы, надо будет включить wp-header.php, или попросту воспользоваться стандартной функцией PHP - mail().

    Но это не совсем правильный путь. Есть и другие, более удобные варианты, а поскольку форма у вас в попапе, то лучше всего воспользоваться Ajax'ом. Пишете в functions.php функцию обработки массива $_POST и отправки письма, саму функцию хукаете в аяксовые экшны, далее с фронтенда отправляете javascript'ом данные на этот action, возвращаете результат json'ом и выводите в вашем попапе.

    Если все это звучит для вас слишком сложно - установите Contact Form 7, Ninja Forms или другой нормальный плагин для форм обратной связи, установите к нему расширение для работы формы в попапе и не морочьте себе голову.
    Ответ написан
    4 комментария
  • Как сделать так, чтобы на каждой статичной странице была возможность добавления картинки и текста с левой стороны, а заголовок и текст с другой?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Не использовать query_posts
    2. Откуда берется контент для правой и левой колонок, где он хранится и в каком виде? Схематически покажите архитектуру.
    3. Если я правильно понимаю, вам нужно вывести объект "Портфолио", у которого сллева будет логотип/скрин, под ним какое-то описание, а справа - стандартные поля the_title и the_content/the_excerpt, так?

    Ответите на эти вопросы - помогу с кодом.
    Ответ написан
    4 комментария