• Изображение внутри псевдоэлемента?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Боюсь что никак. Css attr() только в будущем научится понимать тип содержимого: https://developer.mozilla.org/ru/docs/Web/CSS/attr
    на данный момент ключевое слово url не работает.
    Ответ написан
    3 комментария
  • Как можно сделать страницу портфолио на wordpress?

    seoperin
    @seoperin
    Full stack web developer. Laravel / Vue
    Добавляем кастомный тип записей "Портфолио", можно даже сделать таксономию "Категории портфолио" и всё. Дальше делаем страницу вывода всех работ (archive-portfolio.php) и вывод одной страницы (single-portfolio.php), ну и для таксономий (как то так taxonomy-portfolio_cat.php).
    Ответ написан
    7 комментариев
  • Как растянуть высоту блока на весь экран только с CSS?

    @Chekhoved
    HTML
    <div> ... </div>

    CSS
    html, body {
    	height: 100%;
    }
    div {
    	height: 100%;
    }
    Ответ написан
    1 комментарий
  • Как сделать навбрар прозрачным?

    zooks
    @zooks
    Frontend
    CSS RGBa
    Ответ написан
    Комментировать
  • Почему не работает форма 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 и тд. Если же все-таки хотите освоить эту сферу - начните последовательно изучать то, как правильно нужно работать с формами. Уроков в сети масса.
    Ответ написан
  • Как сделать форму обратной связи 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 комментария
  • Как убрать тайтл в категориях wordpress?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    <?php wp_list_categories('title_li='); ?>
    Документация здесь.
    Ответ написан
    Комментировать
  • Форум для сайта на wordpress, как сделать правильно?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    Если вы просто любитель, то ставьте "bbpress" и не мучайтесь. Конечно есть "plug-ins" объединяющие IPB и WP, но это всё равно две разные платформы, а чем больше платформ - тем больше работы и Вашего времени будет уходить на это. А вдруг ещё сообщество захотите создать (не "BuddyPress") и/или магазин (не "WooCommerce") то вообще замучаетесь с администрированием. Также не забываем, что если вам не нравиться "bbpress", то скорее всего Вы не нашли шаблон, внешний вид которого Вас бы устраивал, а они есть :)
    Ответ написан
    Комментировать
  • Не могу понять, почему не работает цикл wordpress?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    Если лень разбираться с иерархией шаблонов, коротко раскажу как сделать шаблон без этого. Для начала надо придумать какой будет структура шаблона, пускай это будет, как написано в комментариях это 2 различных типа данных + index.php:
    • Основной файл шаблона index.php
    • Статическая домашняя страница
    • Страница с циклом вывода всех записей блога


    и структура файлов в шаблоне будет такая:
    • /index.php
    • /template_parts/home_page.php
    • /template_parts/blog_archive.php
    • /template_parts/blog_single.php
    • /template_parts/main_header.php
    • /template_parts/main_footer.php

    index.php:
    get_template_part('template_parts/main', 'header');
    if ( is_front_page() || is_home() ){
    	    // Homepage - начальная статическая страница
    	    get_template_part('template_parts/home', 'page');
    } else {
    
    	if(get_post_type() == 'post' && is_archive() && !is_author()){
    		//Список всех записей блога (Blog Archive)
    		get_template_part('template_parts/blog', 'archive');
    	}
    	if(get_post_type() == 'post' && is_single()){
    		//Одиночная запись блога
    		get_template_part('template_parts/blog', 'single');
    	}
    
    	//Вариантов вывода может быть множество (смотри документацию):
    	if(is_page() && !is_search() && !is_page_template() && !is_404()){ }
    	if(get_post_type() == 'my_custom_post_type_name' && is_single()){ }
    	if(is_404()){ }
    	if(is_search()){ }
    	if (is_archive() && is_author()){ }
    	if(is_page_template('my_custom_template_name.php')) { }
    }
    get_template_part('template_parts/main', 'footer');


    blog_archive.php:
    if ( have_posts() ) : while ( have_posts() ) : the_post();
    	//В этом цикле выводим посты блога, например:
    	echo 'Заголовок: ' . get_the_title() . ', текст: ' . get_the_excerpt();
    endwhile; else:
    _e('Sorry, no posts matched your criteria.');
    endif;
    //Сбрасываем цикл, если будем запускать повторный цикл с другими параметрами на этой же странице:
    wp_reset_query();


    blog_single.php и home_page.php:
    while (have_posts()) : the_post();
    	//Выводим содержание поста:
    	the_content();
    endwhile;


    Один раз написав шаблон "с нуля" Вы будете знать как работает каждая строчка кода и проблем больше не будет.
    Ответ написан
    Комментировать
  • Есть ли класс для универсального уменьшения-обрезки изображений?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    Попробуйте TimThumb. Например с такими настройками:
    <img src="timthumb.php?src=image_name.jpg&zc=2&q=80&w=100&h=50&cc=ffffff">
    Ответ написан
    1 комментарий
  • Как веб-студии организовать работу с шаблонами Wordpress?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    Действительно, раньше переделывал готовые шаблоны под свои нужды, но со временем пришел к тому, что только свой собственный шаблон надо использовать, а не ковырять чужой код. Когда знаешь как работает каждая функция - выход годного увеличивается (типовой сайт 1-2 дня). На данный момент мой шаблон полностью переписан, но начинался он из таких частей:
    - Каркас "Roots", сейчас его величают "Sage" (https://roots.io/sage/);
    - "Custom Post Type" фреймворк "Pods" (pods.io);
    - Дополнительные админ панели "Redux" (https://reduxframework.com);
    - Плюшки: Twitter Bootstrap, Font Awesome, TimThumb, fancyBox и т.д.
    Ответ написан
    Комментировать
  • Почему операционная система на макбуке начала грузиться очень медленно?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    В лог файлах имеется полная трасировка со временем запуска каждой службы. Если есть знания и опыт, то можно найти виновника задержек. Но чаше всего это системные службы которые не подчиняються нашим желаниям :)
    Ответ написан
    Комментировать