• Как реализовать похожие товары woocommerce для постов блога с похожими тегами?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Вот этот код выведет до 5-ти продуктов, теги которых, совпадают с каким-либо тегом поста. Имена тегов должны быть полностью идентичными
    <?php global $post;
                $post_tags = get_the_tags($post->ID);
                $tag_query = array();
                $i=0;
                foreach ($post_tags as $tag) {
                    $tag_query[i] = $tag->name;
                    $i++;
                }
                $args = array (
                    'post_type' => 'product',
                    'posts_per_page' => 5,
                    'tax_query' => array(
                        array(
                            'taxonomy' => 'product_tag',
                            'field'    => 'name',
                            'terms'    => $tag_query,
                        )
                    )
                );
                $products = new WP_Query($args);
                if ( $products->have_posts() ) :
                while ( $products->have_posts() ) : $products->the_post();
                //здесь выводим продукты в нужной разметке
                endwhile;
                endif; wp_reset_postdata();
                ?>
    Ответ написан
    Комментировать
  • Как сделать вывод записей своей таксономии на одной странице в WP?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Вы создали пользовательскую таксономию для пользовательского типа поста? Если так, то в запросе нужно использовать массив tax_query wp-kama.ru/function/wp_query#parametry-taksonomij
    Это если вы хотите написать свой луп в произвольно месте.. Если же вас интересует просто страница архива нужной таксономии, создайте taxonomy.php и вставьте туда обычный луп без аргументов
    <?php if (have_posts()) : ?>
      <?php while (have_posts()) : the_post(); ?> 
      //Код внутри цикла
      <?php endwhile; ?>
    <?php endif; ?>
    Ответ написан
  • Как найти используемый шаблон Wordpress?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Комментировать
  • Отключить блок в определенной категории woo?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Так в чем вопрос? У вас же там есть проверка. Если поле непустое то выводим, если пустое, то не выводим. Не заполняйте поле в ненужных товарах и все. И проверку if($zavarka=get_field("zavarka"))
    Напишите просто ДО вывода блока и тогда даже разметка не будет выводиться

    <?php if(get_field("zavarka")) { ?>
    <div class= "sposob_varki">
    <div class= "sposob_varki1"><h3><center>СПОСОБ ЗАВАРИВАНИЯ</center></h3></div>
       <?php the_field("zavarka");?>
    </div>
    <?php } ?>

    Если же поле мешает именно в админке, то задайте в ACF условие, чтобы исключить ненужные категории.
    4ff2f06f44d54bbe9236c5e21294ceab.png
    Ответ написан
    1 комментарий
  • Как добавить второй язык на сайт?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    WP Globus точно не подходит? Тогда создайте поддомен en.site.com и сделайте еще один такой же сайт и заполните его на английском. Ну или папку в вашем сайте создайте, чтоб получилось site.com/en, например, и туда тож залейте WP и заполните англоязычным контентом
    Ответ написан
  • Как сделать выпадающее меню для wordpress в 3 ряда?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Для начала в functions.php зарегистрируем меню, например так:
    function register_my_menu() {
      register_nav_menu('header-menu',__( 'Header Menu' ));
    }
    add_action( 'init', 'register_my_menu' );

    После этого идем в админку, Внешний вид -> Меню. Там должно быть создано уже меню Header Menu. Накидываем туда Страницы. записи, рубрики, ссылки в нужной вам иерархии, хоть в 10 уровней
    a01fc28ff6a04bdcb5be2f01231e1baf.png
    Если, вдруг меню не создалось, создайте новое, и назовите его как-нибудь.
    Далее в нужном месте темы пишем, например
    <?php wp_nav_menu(array(
                            'menu' => 'header-menu', //название меню
                            'container' => 'nav', //контейнер
                            'container_class' => 'top-menu', //класс
                        ));?>

    Получите ваше меню. А дальше через css уже стилизуете
    https://codex.wordpress.org/Navigation_Menus
    Ответ написан
    2 комментария
  • Почему bootstrap показывает криво сайт в iphone?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Потому что в верстке полная белиберда. Изучите внимательно сетку бутстрапа. откуда у вас там классы span12, если должны быть col-md-12 и т.д. Вот документация getbootstrap.com/css/#grid
    Ответ написан
    1 комментарий
  • Как кастомизировать шаблон Wordpress?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    В вордпрессе для всего на свете есть плагины. Хотите слайдер? Есть плагины для слайдера. Создали сладер, вставили шорткод в нужную запись или вставили в код нужного шаблона. Хотите галерею? Есть плагины для галереи. Хотите сделать на главной странице слайдер из последних 3-4-х записей? Выводите циклом эти записи в нужной разметке для owl carousel или flexslider. Скрипты и стили подключаете самостоятельно.
    Обязательно изучите иерархию шаблонов вордпресс https://codex.wordpress.org/images/1/18/Template_H...
    Изучите работу цикла https://codex.wordpress.org/Цикл_WordPress , и как написать свой собственный цикл. WP_Query, get_posts();
    Изучите, что такое произвольные типы постов, таксономии и произвольные поля. Мастхев - это ACF и CPT UI.
    Ответ написан
    2 комментария
  • Как использовать цикл while ( have_posts() ): the_post() в своём шаблоне?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Если вы находитесь на статической странице, базовый цикл WordPress выведет вам контент данной страницы. Если вы хотите получить посты на статической странице, то нужно писать свой get_posts(); или WP_Query. Или можно попробовать использовать хук pre_get_posts, если вы хотите сохранить "сортировки постов по буквам". Но я не уверен. Можно попробовать так.

    add_action('pre_get_posts','my_function');
    
    function my_function($query){
        if( $query->is_page(Здесь ID нужной страницы) && $query->is_main_query() && ! $query->is_admin()) {
           //здесь переопределяем аргументы, для цикла, например тип поста
          $query->set('post_type', 'post');
    
        }
    }
    Ответ написан
    2 комментария
  • Woocommerce "итоговая цена" вариативного товара?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Вот функция в includes/wc-template-functions.php
    function woocommerce_variable_add_to_cart() {
            global $product;
    
            // Enqueue variation scripts
            wp_enqueue_script( 'wc-add-to-cart-variation' );
    
            // Get Available variations?
            $get_variations = sizeof( $product->get_children() ) <= apply_filters( 'woocommerce_ajax_variation_threshold', 30, $product );
    
            // Load the template
            wc_get_template( 'single-product/add-to-cart/variable.php', array(
                'available_variations' => $get_variations ? $product->get_available_variations() : false,
                'attributes'           => $product->get_variation_attributes(),
                'selected_attributes'  => $product->get_variation_default_attributes()
            ) );

    Подключает она этот шаблон single-product/add-to-cart/variable.php, копируем себе в тема/woocommerce/single-product/add-to-cart/variable.php и меняем разметку, а так же смотрим какие там еще есть хуки
    Ответ написан
    6 комментариев
  • Можно ли перенести стили скрипты в footer?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Можно все. Но придется делать вручную. В опенкарте много скриптов написано в середине нужного шаблона (модуля или страницы), например всякие слайдеры, лайтбоксы и т.д. И они перестанут работать, если вы из хедера в футер перенесете библиотеку необходимую для них, owl carousel или вообще jQuery. Если вы все это делаете, чтоб угодить google page speed insight, я бы не советовал таким заниматься. Выиграть пару баллов и сломать сайт.. оно того не стоит
    Ответ написан
  • Хлебные крошки (breadcumbs) генерируются 2а раза почему?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Может проще использовать готовое решение? https://ru.wordpress.org/plugins/breadcrumb-navxt/
    Ответ написан
    Комментировать
  • Wordpress woocommerce: полностью кастомный вывод и фильрование товаров?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    В самом шаблоне все уже написано. Вот, например content-single-product.php и интересующий вас экшн.
    <?php
    			/**
    			 * woocommerce_single_product_summary hook.
    			 *
    			 * @hooked woocommerce_template_single_title - 5
    			 * @hooked woocommerce_template_single_rating - 10
    			 * @hooked woocommerce_template_single_price - 10
    			 * @hooked woocommerce_template_single_excerpt - 20
    			 * @hooked woocommerce_template_single_add_to_cart - 30
    			 * @hooked woocommerce_template_single_meta - 40
    			 * @hooked woocommerce_template_single_sharing - 50
    			 */
    			do_action( 'woocommerce_single_product_summary' );
    		?>

    Здесь написаны все хуки из этого экшна. Их можно удалить, можно всунуть свои экшны с функциями. Каждый легко гуглится и вот здесь официальная документация: https://docs.woocommerce.com/wc-apidocs/index.html
    Забиваем в поиск woocommerce_template_single_price и получаем функцию и ссылку на её расположение. Видим
    if ( ! function_exists( 'woocommerce_template_single_price' ) ) {
        /**
         * Output the product price.
         *
         * @subpackage  Product
         */
        function woocommerce_template_single_price() {
            wc_get_template( 'single-product/price.php' );
        }
    }

    Идем по пути видим код нужного шаблона. Так с каждым интересующим. Каждый шаблон можно скопировать в папку своей темы и изменять как угодно, о чем в файле и написано
    This template can be overridden by copying it to yourtheme/woocommerce/single-product/price.php.

    Все поля продукта заполнены как кастомные. Можете к ним обращаться через get_post_meta();
    Чтоб посмотреть все доступные поля, просто дампните результат этой функции без аргументов на странице товара. Но у продукта вуккомерс есть свои методы типа
    $product->get_price(); 
    $product->is_on_sale();
    и т.д. полный список методов здесь
    Ответ написан
    3 комментария
  • Как исключить шаблон кастомной таксономии из запроса woocommerce?

    Palych_tw
    @Palych_tw Автор вопроса
    Типа веб-разработчик
    хук получился такой
    add_action('pre_get_posts','mandrivets_authors');
    
    function mandrivets_authors($query){
            if( $query->is_tax('authors') && $query->is_main_query() && ! $query->is_admin()) {
                $query->set('wc_query', '');
                $query->set('post_type', 'post');
                $query->set('meta_query', '');
            }
    }
    Ответ написан
    Комментировать
  • Почему хром не видит медиа зпросы css?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Вюпорт прописали?
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    Ответ написан
    1 комментарий
  • Как сделать перелистывание страниц wordpress?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    В Wordpress есть замечательные встроенные функции the_posts_navigation() и the_posts_pagination()
    wp-kama.ru/function/the_posts_navigation
    wp-kama.ru/function/the_posts_pagination
    Ответ написан
    Комментировать
  • Как вывести список меток к определенному типу записей?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Метки отдельно врядли. Эта таксономия распространяется на все типы постов. Можно создать отдельную таксономию для каждого типа постов. Другого на ум ничего не приходит

    Если плагин создал тип поста cafe, и к нему прикрутил таксономию, например, cafe_tags со своими терминами, то получить список терминов определенной таксономии можно функцией get_terms(); wp-kama.ru/function/get_terms

    $terms = get_terms("my_taxonomy");
     $count = count($terms);
     if($count > 0){
    	 echo "<ul>";
    	 foreach ($terms as $term) {
    	   echo '<li><a href="'.get_term_link($term).'">'.$term->name.'</a></li>';
    
    	 }
    	 echo "</ul>";
     }


    Вот пример из документации, я добавил, чтобы получились ссылки get_term_link($term).
    Ответ написан
    8 комментариев
  • Как переносить строки в WORDPRESS c плагином ACF?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    посмотрите эту настройку поля 429b069d1f734b6c8b493d22628ed993.png
    Ответ написан
  • Как вывести рубрики (archive.php) записей wordpress?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    если вы используете глобальную переменную $wp_query , то обнулять нужно через <?php wp_reset_query(); ?> . И зачем писать кастомный луп, если тут можно использовать базовый цикл WP. Или у вас количество постов на страницу в этом шаблоне отличается от глобального, заданного в админке?
    Получается, что вы в шаблоне создаете свой собственный запрос вместо встроенного, но не указываете, какие типы постов, рубрики и прочее хотите получить.
    Попробуйте так
    <?php
    /*
        Template Name: archive
    */
    ?>
    <?php get_header(); ?>
        <div class="page-content-wrapper">
            <div class="single-page-content">
                <div class="breadcrumbs" typeof="BreadcrumbList" vocab="http://schema.org/">
                    <?php if(function_exists('bcn_display'))
                    {
                        bcn_display();
                    }?>
                </div>
                <div class="news-sidebar-row">
                    <?php wp_nav_menu( array( 'container_class' => 'news-menu', 'menu' => 'news' , 'menu_class' => 'news-nav' , 'theme_location' => 'primary' ) ); ?>
                </div>
                <article>
                    <div class="entry">
                        <?php if ( have_posts() ) : ?>
                        <?php
                        // Start the loop.
                        while ( have_posts() ) : the_post();?>
                            <div class="news-entry">
                                <?php the_post_thumbnail( 'thumbnail', array( 'class' => 'alignleft' ) ); ?>
    
                                <div class="news-title">
                                    <p><?php the_date(); ?></p>
                                    <h4><a href="<?php the_permalink(); ?>" title="Читати далі"><?php the_title(); ?></a></h4>
                                </div>
                                <div class="news-excerpt">
                                    <?php echo(get_the_excerpt()); ?>
                                    <div class="read-more-news"><a href="<?php the_permalink(); ?>" title="Читать дальше">Читать дальше</a></div>
                                </div>
    
                            </div>
    
                        <?php endwhile; ?>
                    </div>
                </article>
    
                <?php
                the_posts_pagination( array(
                    'prev_text'          => __( 'Previous page' ),
                    'next_text'          => __( 'Next page' ),
                    'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page' ) . ' </span>',
                ) ); ?>
                <?php endif;
                ?>
            </div>
        </div>
    <?php get_footer(); ?>
    Ответ написан
    Комментировать
  • Вывести на странице записи выбранной метки?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    если нет страницы tag.php будет исползоваться index.php, у вас в этом файле есть базовый цикл ВП или вы сделали из этого файла статическую главную страницу? если так то в tag.php базовый код такой
    <?php get_header(); ?>
    <?php
    	the_archive_title( '<h1 class="page-title">', '</h1>' );
    		/* Start the Loop */
    		while ( have_posts() ) : the_post();
    			the_title();
                            the_excerpt(); ?>
      <a href="<?php the_permalink();?>">Читать далее ></a> 
      <?php
      endwhile;
      $pagination_args = array(
                                'prev_text' => __( '«' ),
                                'next_text' => __( '»' )
                            );
         the_posts_pagination($pagination_args);
          endif; ?>
         <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Примерно так
    Ответ написан
    Комментировать