Задать вопрос
  • Как сделать хаотичное расположение записей?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    А кто вам сказал, что там хаотично? я вижу четкую сетку в 3 колонки и вывод постов определенного размера - 1х, 2х. Верстайте спокойно основу, в цикле рандомом подставляете нужные классы из готового набора.
    Ответ написан
    1 комментарий
  • Как вывести подрубрики на странице рубрик?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Для вывода рубрик есть функция get_categories(). Для вывода подкатерий у этой функции есть аргумент parent, который должен быть равен ID родительской категории.
    Ответ написан
    Комментировать
  • Как вывести дополнительные поля из последних трех статей(или рандомно) на главную?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    У ACF для вывода значений кастомных полей есть функции the_field(), get_field(). Обе функции принимают 2 параметра - ID поста и имя кастомного поля. Поэтому, ваша задача в первую очередь сводится к получению 3х постов, что очень просто:
    // параметры для получения постов
    $args = array(
        'numberposts' => 3,
        'orderby' => 'rand', // рандомные 3 поста, удалите строку если надо последние 3
    );
    // получаем массив постов
    $posts_array = get_posts( $args );
    // проходимся циклом по массиву постов
    foreach( $posts_array as $post ) {
        echo '<h1>'.$post->post_title.'</h1>';
        echo '<img src="'.get_field( $post->ID, 'custom_field_name' ).'">';
    }

    Второй echo выводит URL из кастомного поля в тег IMG, чтобы это работало, в настройках этого поля в ACF укажите в качестве return чтобы поле возвращало именно URL.
    Ответ написан
    8 комментариев
  • Можно ли использовать type hinting для Object?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    how уже ответил и дал по поводу интерфейса дельное замечание. Но оно не раскрыто подробнее, новички в ООП не поймут. Исправляю ситуацию, так как это полезный трюк:

    1. Создаем пустой интерфейс
    interface Object {
       // Здесь ничего нет
    }

    Его название потом и будем использовать для type hinting.

    2. Имплементируйте этот интерфейс в нужных классах:
    class MyBaseClass implements Object {
       // ваш обычный код класса
    }


    3. Теперь все будет работать, например:
    function myFunc (Object $obj);
    Ответ написан
    Комментировать
  • Как запустить свой проект с нулевыми затратами?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Любой недорогой хостинг (без рекламы) и Google Analytics или Яндекс Метрика. Чтобы не платить за хостинг (поо крайней мере на первых порах) - поищите в сети купоны со скидками. Многие хостера дают поюзать 1-3 месяца бесплатно.
    Ответ написан
    Комментировать
  • Как правильно отображать плагины-приложения?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Посмотрите в сторону фильтра template_include
    Ответ написан
    Комментировать
  • Wordpress. Как фильтровать посты по категориям, ajax?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Сейчас вы циклом выводите все посты (posts_per_page равен -1). То есть, все посты у вас уже есть, аякс по большому счету не нужен - достаточно просто прятать ненужные элементы. Чтобы определить какой пост в какой рубрике, необходимо в вывод поста добавить дополнительный атрибут, через который вы ее будете отлавливать. Например
    <?php $category = get_the_category(); // получить  ?>
    <a href="<?php the_permalink() ?>" rel="bookmark" data-category="<?php echo $category[0]->cat_name; ?>">
        <?php the_post_thumbnail('thumbnail'); ?>
    </a>

    Далее уже в javascript при клике на ссылку в фильтре берете ее имя из $(this), проходитесь с помощью each() по всем постам, скрываете те, у которых data('category') не равен имени категории.

    Еще раз, зачем аякс?
    Ответ написан
  • Вывод стилей в шапке темы?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Я вообще перед title ничего лишнего не увидел. А вот по качеству разметки соглашусь с faragly. Зачем, например, DD_belatedPNG fix? Это же технология десятилетней давности, давно утратившая свой смысл.
    Ответ написан
    Комментировать
  • Двухуровневое меню WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Читайте документацию wp_nav_menu(). Эта функция позволяет переопределить практически все элементы, их классы и айди. Если этого мало - используйте Walker класс, как уже подсказали.
    Ответ написан
    Комментировать
  • Как сделать разные single.php для AJAX вывода через шорткод, и остальных страниц?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    crazyASD: вам не нужно выводить аяксом весь индекс целиком. Есть 2 пути.

    Если вы используете вордпресовский аякс (через функцию, которая подключена на wp_ajax_ и/или wp_ajax_nopriv_, как положено) - тогда в этой функции получите нужный пост с помощью get_post() и отформатируйте как надо, результирующий хтмл отдайте с помощью wp_send_json_success().

    Если вариант 1 непонятен (хотя он правильный и корректный), если вы аяксом дергаете непосредственно урл индекса, вспомните, что аякс-запрос позволяет получать не только страницу по урл целиком, но и ее часть, если указать #element_id то будет получен только контент этого элемента.
    Ответ написан
    Комментировать
  • Как осуществить переход на внутреннюю html страницу?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Тема лежит не в корне относительно домена, а в папке /wp-content/themes/theme_name/
    Соответственно, если вы попытаетесь открыть domain.com/inside.html напрямую - получите 404, потому что такого файла по этому пути нет. У вас в этом месте (по этому пути) - wp-config.php, index.php вордпресовский и тд. Используйте адрес, который соответствует пути - domain.com/wp-content/themes/theme_name/inside.html - тогда откроется. Но это - через Ж. Хотите статические файлы - перенесите их в корень сайта. Хотите чтобы оставалось в папке темы, но открывалось напрямую - из статики делайте шаблоны, которые будет понимать WordPress.
    Ответ написан
    Комментировать
  • Возможно -ли позволить любому пользователю сайта создавать пост Custom Post Type (пост-анкета)?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вопрос старый, но может будущим поколениям будет полезно.
    Да, можно. Принимаете данные через POST со своей формы и используете функции
    wp_insert_post() / wp_update_post()
    add_post_meta() / update_post_meta()
    Ответ написан
    Комментировать
  • Реально ли сделать сайт хостела на WP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Можно, без проблем. Но придется закатывать рукава и писать немного кастомного кода. Если с этим проблема - наймите разработчика. Кастомный код придется писать под любую CMS, кроме, разве что, специально заточенной под хостелы. А такую вы вряд ли найдете.
    Ответ написан
    Комментировать
  • Создание генерированных страниц Wordpress. Как запретить?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Откуда у вас вообще такие страницы? Цифры после названия - это произвольные цифры которые вы вписываете и видите при этом страницу interesnaya_stranica, хотя ожидали увидеть 404? Или это реальный ID страниц, который дописывается плагином или кастомными rewrite_rules?
    Ответ написан
  • Как выводить изменения из админки в публичную часть?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    У вас платный шаблон? Стучитесь в поддержку к разработчикам, вы именно за это заплатили деньги.
    Ответ написан
    Комментировать
  • WordPress галерея из общей папки Windows?

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

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    О боги! Такое ощущение, что все начинающие работать с WordPress учатся по одному какому-то старому уроку, написанному таким же начинающим. Сколько уже исписано - не используйте query_posts. Никогда!

    Если нужно получить 1 пост - get_post()
    Если нужно получить несколько постов вне контекста - get_posts()
    Если нужно модифицировать основной запрос - фильтр pre_get_posts
    Во всех остальных случаях - только WP_Query.

    В вашей ситуации, если нужно, например, на главной странице, где уже есть основной запрос, дополнительно вывести блок с кастомными записями (участники), делайте secondary loop с помощью WP_Query:

    $args = array(
        'post_type' => 'participants' // или как там он у вас называется
        'posts_per_page' => 5,
    );
    $participants = new WP_Query( $args );
    // дальше - loop
    if( $participants->have_posts() ) :
        while( $participants->have_posts() ) :
            $participants->the_post();
            // тут выводим пост
        endwhile;
    endif;
    wp_reset_postdata(); // возвращаем глобальные переменные к состоянию главного запроса


    Если же нужно вывести архив ваших участников - просто создайте шаблон archive-participants.php (вместо participants - ваше название custom post types).

    Если нужно, чтобы на главной или другом шаблоне участники выводились вперемешку вместе с обычными постами, или подобный сценарий - изменяете параметры основного запроса:

    function my_modified_query( $query ) {
        // вместо is_home - проверяйте на соответствующий задаче шаблон
        // is_main_query - чтобы убедиться, что меняем именно основной запрос
        if ( $query->is_home() && $query->is_main_query() ) {
            $query->set( 'post_type', 'participants' );
            $query->set( 'posts_per_page', 20 );
        }
    }
    add_action( 'pre_get_posts', 'my_modified_query' );


    Судя по всему, английскую документацию вы либо не читали, либо сложно понять всю суть на английском. Есть отличный источник информации на русском: wp-kama.ru/function/wp_query
    Ответ написан
    Комментировать
  • Переход по id передачей параметров. Как сделать?

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

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ответ написан
    Комментировать