• Как сделать личные кабинеты на Wordpress с особенностями?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Не совсем ясно, что именно вы хотите услышать в ответе. Если вы ищите плагин, то на 100% подходящего решения вам найти не удастся, вы можете посмотреть в сторону wp-recall, у него есть много дополнений, среди которых разделение на типы пользователей, но, скорее всего, вам все равно придется допиливать что-то самостоятельно

    Плюс к этому я бы вам крайне не рекомендовал для регистрации компаний и работников использовать именно пользователей. Гораздо практичнее их сделать связанными типами записей, при этом юзер может зарегистрироваться на сайте и добавлять и те и другие из админки не участвуя во фронте

    У меня есть горнолыжный сайт на котором есть инструкторы по лыжам и сноуборду. По началу это тоже были юзеры, но это вызывало много сложностей:

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


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

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Вероятнее всего у вас есть записи в базе об этих медиафайлах, но физически они отсутствуют в папке /uploads, вам нужно загрузить их в эту папку

    Если у вас есть оригиналы изображений в этой папке, вы можете нарезать миниатюры заново плагином Regenerate Thumbnails
    Ответ написан
  • Как фильтровать кастомные типы постов по категориям?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Создаете простую html форму с get-запросом. Очевидно, что товары не могут быть одновременно светлыми и темными, поэтому это должны быть радио-кнопки, а не чекбоксы, как на макете

    <form method="get" class="obj-filter">
    	<input class="obj-filter-input" type="radio" id="light" name="color" value="light">
    	<label class="obj-filter-label" for="light">Light</label>
    
    	<input class="obj-filter-input" type="radio" id="dark" name="color" value="dark">
    	<label class="obj-filter-label" for="dark">Dark</label>
    
    	<input id="obj-filter-submit" type="submit" class="button" value="Фильтровать">
    </form>


    Теперь вам нужно зарегистрировать этот параметр color для того, чтобы можно было получить его из ссылки с get-параметрами

    add_filter( 'query_vars', 'add_query_vars' );
    function add_query_vars( $qvars ) {
    
    	$qvars[] = 'color';
    
    	return $qvars;
    }


    При нажатии кнопки "Фильтровать" страница перезагружается, при этом создается новый запрос в базу, на хуке pre_get_posts вы можете выдернуть параметры get-запроса из ссылки и отсортировать нужные вам записи

    add_action( 'pre_get_posts', 'custom_pre_get_posts', 1 );
    	function custom_pre_get_posts( $query ) {
    	// Выходим, если это админ-панель или не основной запрос
    	if( is_admin() || !$query->is_main_query() )
    		return;
    
    	// сортируем записи 'obj', если указан гет-запрос
    	if ( $query->is_archive() && $query->get('post_type') === 'obj' ) {
    		if ( $var = get_query_var( 'color', false ) ) {
    			$query->set( 'obj-cat', $var );
    		}
    	}
    }
    Ответ написан
    Комментировать
  • Как сделать вывод записей в WP в несколько контейнеров?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    $i == 1;
    while ( $query->have_posts() ) {
    	$query->the_post();
    
    	if ( $i === 6 ) {
    		# после шестого элемента добавляем какой-то контент
    	}
    
    	$i++;
    }
    Ответ написан
    Комментировать
  • Как через json запрос получить страницы находящиеся в кастомном поле?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Это таблица wp_postmeta? Используйте get_post_meta()

    $pods_relations = get_post_meta( get_the_ID(), '_pods_relations', true );


    Или почитайте документацию, у этих плагинов должны быть свои нативные функции для работы
    Ответ написан
  • Как сделать пагинацию с wp_query?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Комментировать
  • Как создать таблицу с привязкой к странице на WordPress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Лично я тоже довольно долго искал решение подобной вам проблемы, пробовал разные варианты и форматы хранения таблиц начиная от html, json, csv и заканчивая плагинами, среди которых TablePress оказался самым удачным

    В конечном итоге я пришел к тому, что ничего удобнее excel (google sheets) для работы с табличными данными еще не придумали. Вот примерный гайд, как я делаю:

    1. Создаю в /wp-content папку /data, загружаю туда нужные файлы
    2. Беру простую библиотеку SimpleXLSX, она делает из таблицы обычный массив
    3. С массивом можно делать что угодно — сделать шорткод add_shortcode(), создать из каждой строки посты wp_insert_post() или термины wp_insert_category() циклом , положить в опции темы update_option() или сразу вывести нужную вам верстку
    Ответ написан
    Комментировать
  • Wordpress. Как вывести архив постов в две колонки с разной разметкой?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Я для подобных сеток не долго думая беру masonry

    PS. Вам надо было указывать тег CSS, там любят решать подобные задачки
    Ответ написан
    1 комментарий
  • Как на сайте Wordpress+WooCommerce настроить цель Метрики "применил промокод"?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    В метрике можно настроить клик по определённой кнопке, но метрика не поймет сработал промокод или нет, т.к. это проверяется на сервере
    Ответ написан
  • Wordpress. Почему фильтр постов по таксономии выводит записы только по первой таксономии?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Скорее всего, если у записи несколько категорий, то их все нужно вывести в теге <li>

    $classes = array();
    $classes[] = 'mix';
    
    if ( $terms = get_the_terms( get_the_ID(), 'genretax' ) ) {
    	foreach ( $terms as $key => $term ) {
    		$classes[] = 'category' . $term->term_id;
    	}
    }
    
    echo '<li class="' . implode( ' ', $classes ) . '">';
    Ответ написан
  • Можно ли в Wordpress разделить некоторые страницы на несколько блоков?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Альтернативы Carbon Fields и MetaBox
    Ответ написан
    Комментировать
  • Как быстро заменить на страницах один город на другие города?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Вот способ, которым пользуюсь я:

    1. Создаете excel-таблицу с городами и их склонениями

    615701ef5b465827097123.png

    2. Берете библиотеку для работы с excel, например SimpleXLSX, массив со склонениями можно положить в wp_options, тут пример

    3. А дальше все просто — создаете шорткод с атрибутами "город" и "падеж". Информацию о городе можно брать из мета-поля страницы. Чтобы не писать все руками, можно создать все страницы циклом с помощью wp_insert_post()
    Ответ написан
    Комментировать
  • Проблема с get запросом на wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Скопировал, распечатал на чистой сборке, все работает

    61546573175c0989630679.png

    Кстати, в WordPress правильно правильно регистрировать переменные на хуке query_vars, а получать с помощью get_query_var()
    Ответ написан
    Комментировать
  • Как вывести ссылки и заголовки соседних страниц?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Используйте wp_list_pages() для вывода списка страниц

    wp_list_pages( [
    	'child_of' => $post->post_parent,
    	'exclude' => $post->ID,
    	'depth' => 1
    ] );


    Или получите объекты страниц с помощью get_pages() для создания своей разметки

    $pages = get_pages( [
    	'parent' => $post->post_parent,
    	'exclude' => $post->ID,
    ] );
    
    foreach( $pages as $post ) {
    	setup_postdata( $post );
    	// формат вывода
    }
    wp_reset_postdata();


    Аргумент parent в последнем примере получает вложенность только первого уровня от родителя, вы можете заменить его на child_of, чтобы получить всех потомков родителя
    Ответ написан
    Комментировать
  • Как получить ссылку и заголовок родительской родительской страницы?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Воспользуйтесь такой рекурсивной функцией

    function get_top_ancestor( $id = get_the_ID() ) {
    	$current = get_post( $id );
    	if( $current->post_parent === 0 ) {
    		return $current->ID;
    	} else {
    		return get_top_ancestor( $current->post_parent );
    	}
    }


    Использование в цикле get_top_ancestor();
    Ответ написан
    Комментировать
  • Почему только после второго клика работает добавлением и уменьшение кол-ва в корзине?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Не обязательно каждый раз изобретать свой велосипед, можно воспользоваться готовыми решениями, ищите woocommerce quantity increment github

    Вот хорошие решения:

    Ответ написан
    1 комментарий
  • Долго ли искать свой первый оффер ux/ui- дизайнеру, который только-только закончил курсы?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    За любого специалиста говорит его портфолио и кейсы, за дизайнера особенно. Сделайте 6-8 качественных работ, разместите их на behance. Вы должны делать как минимум выше среднего по рынку, чтобы иметь шанс отклика от hr, а дальше уже ваша продажа — нужно показать как вы вникаете в задачу клиента и как обосновываете свои решения

    Предлагаю вам сразу рассмотреть такую задачу: возьмите эту страницу с вопросом, на которой вы находитесь и страницу с личным кабинетом на Тостере. Попробуйте сделать редизайн — переверстайте, добавьте полезную информацию, интерактивные элементы. Подумайте как сделать, чтобы больше пользователей пришли писать вопросы, отвечать ответы и больше времени проводить на сайте. В качестве референсов используйте Stack Overflow, Reddit, Яндекс.Кью и известные вам соц.сети

    Тут много чего можно сделать и вот вам несколько идей:

    • Добавить статистику просмотра профиля, статистику просмотра ответов, добавить кучу графиков с просмотрами своих ответов по тегам, чтобы видеть прогресс
    • Переверстать иконки ачивок, добавить разнообразия, добавить временные за неделю/месяц/год, добавить уникальные и премиальные для тех, кто делает большой вклад в развитие комьюнити
    • Добавить функцию (и самостоятельные страницы) "ответить позже" и "сохраненные ответы"
    • Чуть переверстать форму ответа (отступы от blockquote и некоторых других элементов выглядят плохо)
    • Добавить ajax поиск в своих ответах — сейчас найти свой ответ в позапрошлом месяце вообще боль


    В конце концов вы можете создать тут же вопрос и спросить людей чего еще им не хватает, я думаю вам сразу же еще идеи накидают)
    Ответ написан
    Комментировать
  • Почему простые пользователи не видят css wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Скорее всего проблема в кеше, функция get_template_directory_uri() используется правильно, но, по хорошему, стили должный подключаться с помощью wp_enqueue_style() на хуке wp_enqueue_scripts
    Ответ написан
    Комментировать
  • Какие таблицы wordpress используются для записи товара в базу?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Не знаю на счет описания таблиц, но, в целом, из их названий и так достаточно понятно какие и за что отвечают

    • wp_options — настройки сайта и темы
    • wp_users — пользователи
    • wp_usermeta — метаполя пользователей
    • wp_comments — комментарии
    • wp_commentmeta — метаполя комментариев
    • wp_posts — записи
    • wp_postmeta — метаполя записей
    • wp_terms — термины
    • wp_termmeta — метаполя терминов
    • wp_term_taxonomy — таксономии
    • wp_term_relationships — связи терминов с таксономиями


    При создании своих записей в базу, нужно, как минимум использовать нативные функции, так вы избежите многих проблем

    • wp_insert_post() — создать запись
    • wp_update_post() — обновить запись
    • add_post_meta() — добавить занчение с мета-полем
    • update_post_meta() — обновить занчение с мета-полем
    • wp_set_object_terms() — установить таксономию для записи


    Это базовые функции ядра, при публикации товаров лучше искать и использовать методы самого WooCommers
    Ответ написан
    Комментировать
  • Как задать вывод цитаты (the_excerpt) в Wordpress независимо от заполнения поля?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Почему бы вам не написать свою функцию и использовать ее в теме? Так и поля ACF будет проще собирать

    function custom_excerpt() {
    
    	$html = '';
    
    	if ( has_excerpt() ) {
    		$html = get_the_excerpt();
    	} else {
    		// если нет контента, то собираем $html из полей ACF
    	}
    
    	return $html;
    
    }


    Использование в теме:

    <?php echo custom_excerpt(); ?>
    Ответ написан
    Комментировать