Ответы пользователя по тегу WordPress
  • Как сделать чередование класса css для каждой третьей записи?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    <?php $mycat=get_the_category(); $mycat=$mycat[0]; ?>
    <?php $postslist = get_posts('numberposts=-1&orderby=title&order=ASC&category='.$mycat->cat_ID); ?>
    
    
    <ul>
    <section class="portfolio">
          <div class="grid" data-cols="2" data-margin="15" data-height="1" data-double-height="2" style="margin: -15px; position: relative; height: 1650px;">
    <?php
    $i=1;
     foreach ($postslist as $post) : setup_postdata($post); ?>
        
       <div class="entry <?php if( $i%3 == 0 ) echo 'w2';?>" style="width: 429px; height: 300px; margin: 15px; position: absolute; left: 918px; top: 0px;">
                  <a href="<?php the_permalink(); ?>">
              <?php if ( has_post_thumbnail()) {
    $image_url_min = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full'); ?>
    
                <div class="entry-image imageBG" data-img="<?php echo $image_url_min[0]; ?>" style="background-image: url('<?php echo $image_url_min[0]; ?>'); background-size: cover; background-position: 50% 50%;"></div>
                <?php }?>
    
                <div class="entry-content hidden">
                  <div class="entry-desc">
                    <div class="entry-title"><a class="h2grid" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
                    <div class="entry-p"> <p class="dopp" style=""><?php the_field('date'); ?><p>
              <p  class="ssilkahomeitem"  style="font-size: 13px!important;  font-family: 'proximanovabold';">
        <a  href="/lektsii/">ЛЕКЦИИ</a></p>
                      
    
                    </div>
                  </div>
                </div>
              </a>
            </div>
    <?php 
    $i++;
    endforeach; ?>
    Ответ написан
    2 комментария
  • Как сделать активной ссылку в меню навигации wordpress?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    В functions.php пишем
    add_action( 'after_setup_theme', 'mytheme_setup' ); 
    function mytheme_setup() {
            add_theme_support( 'menus' );
    }

    Потом идете в админку Внешний вид -> Меню. Создаете меню, имя на латиннице. Накидываете туда ссылки, страницы, записи.
    Идете в ваш шаблон, и в нужном месте выводим меню с помощью
    wp_nav_menu()
    Читаем доку здесь wp-kama.ru/function/wp_nav_menu
    Должно получиться примерно так
    <?php
                    wp_nav_menu( array(
                        'menu'            => 'название_меню',
                        'container'       => 'nav', // ну или div
                        'container_class' => 'класс контейнера',
                    ) );
                    ?>


    WP отслеживает активный пункт самостоятельно, только стили пропишите.
    Ответ написан
    Комментировать
  • Как вывести атрибуты товара woocommerce в списке товаров?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Попробуйте так.

    add_action( 'woocommerce_after_shop_loop_item_title', 'show_attributes', 20 );
     
    function show_attributes() {
    global $product;
    if ($product->product_type == 'variable') {
            $attributes = $product->get_attributes();?>
            <ul>
                <?php  $variations_ids = $product->get_children();
                foreach ($variations_ids as $variation_id) {
                    $variation = $product->get_child($variation_id);
                    $variation_data = $variation->get_variation_attributes();
                    $attributes     = $variation->parent->get_attributes();
                    $description    = array();
                    $attr_name        = '';
    
                    if ( is_array( $variation_data ) ) {
    
                        foreach ( $attributes as $attribute ) {
    
                            if ( ! $attribute[ 'is_variation' ] ) {
                                continue;
                            }
    
                            $variation_selected_value = isset( $variation_data[ 'attribute_' . sanitize_title( $attribute[ 'name' ] ) ] ) ? $variation_data[ 'attribute_' . sanitize_title( $attribute[ 'name' ] ) ] : '';
                            $description_name         = esc_html( wc_attribute_label( $attribute[ 'name' ] ) );
                            $description_value        = __( 'Any', 'woocommerce' );
    
                            if ( $attribute[ 'is_taxonomy' ] ) {
    
                                $post_terms = wp_get_post_terms( $variation->id, $attribute[ 'name' ] );
    
                                foreach ( $post_terms as $term ) {
                                    if ( $variation_selected_value === $term->slug ) {
                                        $description_value = esc_html( apply_filters( 'woocommerce_variation_option_name', $term->name ) );
                                    }
                                }
    
                            } else {
    
                                $options = wc_get_text_attributes( $attribute[ 'value' ] );
    
                                foreach ( $options as $option ) {
    
                                    if ( sanitize_title( $variation_selected_value ) === $variation_selected_value ) {
                                        if ( $variation_selected_value !== sanitize_title( $option ) ) {
                                            continue;
                                        }
                                    } else {
                                        if ( $variation_selected_value !== $option ) {
                                            continue;
                                        }
                                    }
    
                                    $description_value = esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) );
                                }
                            }
    
                            $description[] =  rawurldecode( $description_value );
    
                        }
                        $attr_name .= implode( '', $description );
    
                    } ?>
                    <li><?php echo $attr_name;?> - <?php echo $variation->get_price_html();?></li>
               <?php } ?>
            </ul>
        <?php }
    }
    Ответ написан
    7 комментариев
  • Как вывести уникальное меню категории для каждой категории товара woocommerce?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Потому что функция has_term проверяет наличие термина у поста. "Если пост имеет категорию "пример"" - вы вот это проверяете. А если функция еще и не внутри цикла, то нужно передавать ID поста. Вам нужно использовать is_tax();
    Вот так
    if ( is_tax( 'product_cat', 'primer' )) {
          $args = array(
            'theme_location' => 'sidebar-menu',
            'menu_class' => 'sidebar-nav',
          );
          wp_nav_menu($args);
        }
        else{
          $args = array(
            'theme_location' => 'sidebar-menu-2',
            'menu_class' => 'sidebar-nav',
          );
          wp_nav_menu($args);
        }
    Ответ написан
  • Какой есть плагин магазина для Wordpress на поддомен или /shop?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Woo после установки создаст необходимые страницы: Магазин (страница с выводом всех товаров, по умолчанию слаг - shop), Корзина, Оформление заказа, Личный кабинет. Все шаблоны для вывода товаров естественно в плагине есть. Но вас никто не избавляет от необходимости написать тему. В теме woo использует шаблон woocommerce.php для своих страниц, в котором одна функцияwoocommerce_content() , которая определяет тип страницы и подтягивает нужный шаблон из шаблонов в самом плагине. Все шаблоны вы можете переопределять и кастомизировать. Оставляете главную на сайте как есть. index.php, например, или как у вас сейчас, я не знаю. Там вероятно есть header.php и footer.php. Создайте header-shop.php и footer-shop.php для использования на страницах магазина. Подключайте так get_header('shop'); Еще почитайте здесь virtum.com.ua/sozdanie-temy-dlya-woocommerce-kratk...
    Ответ написан
    Комментировать
  • Сортировка товаров в админке Woocommerce?

    Palych_tw
    @Palych_tw Автор вопроса
    Типа веб-разработчик
    Нашел решение. Может пригодится кому. Вот готовое решение в functions.php
    add_filter( 'manage_edit-product_sortable_columns', 'my_product_sorting_column' );
    
    function my_product_sorting_column( $columns ) {
        $columns['is_in_stock'] = 'in_stock';
    
        return $columns;
    }
    add_action( 'pre_get_posts', 'my_product_sorting' );
    
    function my_product_sorting( $query ) {
    
        if( ! is_admin() )
            return;
    
        $orderby = $query->get( 'orderby');
    
        if( 'in_stock' == $orderby ) {
            $query->set('meta_key','_stock_status');
            $query->set('orderby','meta_value');
        }
    }

    Данный код делает уже существующую колонку сортируемой, в хук pre_get_posts добавляет саму сортировку. Почитать подробнее можно здесь wp-kama.ru/id_995/dopolnitelnyie-sortiruemyie-kolo...
    Здесь, в том числе, добавление своей колонки в админку (у нас колонка уже есть).
    Ответ написан
    Комментировать
  • Срочно, как настроить пагинацию с WP_Query?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    попробуйте стандартную пагинацию, будет работать?

    <?php
                        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                        $pagination_args = array(
                            'prev_text' => __( '«' ),
                            'next_text' => __( '»' )
                        );
                        $args = array(
                           'posts_per_archive_page' => 3,
                            'orderby' => 'none',
                            'post_type' => 'news',
                            'offset' => 1,
                            'paged' => $paged
                        );
                        $wp_query = new WP_Query( $args );
    
                        if ( have_posts() ) :
    
    
                            while ($wp_query->have_posts()) : $wp_query->the_post();
    
    
                            endwhile;
    
                            the_posts_pagination($pagination_args);
    
                        endif;
                        wp_reset_query(); ?>
    Ответ написан
    23 комментария
  • Как вывести подкатегории товаров на страницу категории?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Woo умеет это сам. Заходите в категорию и ставите вид отображения
    8d3f69739f2e4edeb00f93e8f0fc3f1f.png

    UPD
    wp-kama.ru/function/get_terms
    Простой пример. выведем дочерние категории для категории с id 30
    <ul>
    <?php
         $terms = get_terms( 'product_cat', array( 'child_of' => 30,  ) );
         foreach ($terms as $term) {
         echo '<li><a href="'.get_term_link($term,'product_cat').'">'.$term->name.'</a></li>';
     } ?>
    </ul>
    Ответ написан
  • Отдельный шаблон для произвольных типо записей?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Для произвольного типа записей используется шаблон single-название_типа_поста.php . Что должно быть внутри? Сделайте по примеру вашего single.php - внутри хедер, футер, сайдбар и вывод самого поста, напишите разметку и добавьте нестандартные поля, если есть. И изучите иерархию шаблонов в WP - все довольно очевидно https://developer.wordpress.org/files/2014/10/temp...
    Ответ написан
    Комментировать
  • Как редактировать файлы темы через редактор wordpress?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Зависит от того как работает PHP. Если "как модуль apache" то и запускается он под пользователем апач - www-data, если владелец папки wp-content не www-data, а ваш пользователь или вообще root, то нужны права 755. Ставьте сразу на wp-content, а то не сможете ничего вообще, ни плагин обновить, ни картинку залить. Бывает на VPSках еще такая штука, когда WP просит в админке FTP доступ, решается так :
    Решение данной проблемы простое, необходимо в файл wp-config.php дописать в самый конец строку:

    define('FS_METHOD', 'direct');
    Либо более «правильный» код:

    if(is_admin()) {
    add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
    define( 'FS_CHMOD_DIR', 0751 );
    }
    После чего WordPress должен обновляться в нормальном режиме.


    Ну и права меняйте же рекурсивно на все содержимое папки, на файлы 644 ставьте.
    Ответ написан
    1 комментарий
  • Как сделать форму поиска рабочей?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Вы откуда пример то брали? В WP есть дефолтная форма поиска. которая подключается через get_search_form(); (если в теме нет шаблона searchform.php). Здесь есть примеры кода дефолтной рабочей формы wp-kama.ru/function/get_search_form

    Все id и name нужно сохранить, а стилизовать можете как хотите.
    Ответ написан
  • Wordpress вывод поста через Ajax?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Инфы же куча в гугле. Вам нужно создать скрипт с ajax запросом, написать php функцию, которая будет этот запрос обрабатывать и возвращать некий результат (в вашем случае выдавать содержимое поста по его id), и разрешить использовать ajax на фронте.
    Смотрите документацию здесь wp-kama.ru/id_2018/ajax-v-wordpress.html
    Вот здесь popovses.net/wordpress-development/ajax-wordpress.html
    https://habrahabr.ru/company/dataart/blog/271189/

    Было бы желание разобраться..
    Ответ написан
    Комментировать
  • Почему страница записей в Wordpress подхватывает файл index.php?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    А почему у вас должен использоваться archive.php если вы для этих целей назначили статическую страницу?
    Ответ написан
    Комментировать
  • Как сделать разные шапки для страниц?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Можно подключать разные хедеры. Например. header.php подключается через get_header(); а header-main.php можно подключить через get_header('main'); аналогично можно подключать разные футеры и сайдбары
    Ответ написан
    Комментировать
  • Магазин на Вордпресс woocommerce - категории товаров стали архивными, как отключить?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    через какой промежуток времени присваивать статус "Архивный" для записей категорий"
    Архив - это не значит "долго лежал". Архив в WP - это страница таксономии с её постами. По умолчанию ( если не настраивать никаких SEO плагинов ) все таксы имеют тайтл "архив", в т.ч. встроенные рубрики.

    Посмотрите какой плагин стоит у вас. Yoast SEO, или может All In One Seo Pack, если нет никакого, то установите. Зайдите в настройки и пропишите шаблоны заголовка и мета-описания для нужных типов страниц.
    Ответ написан
    Комментировать
  • Как установить тему для WooCommerce?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    у вас в теме есть файл woocommerce.php, этот шаблон отвечает за вывод страниц магазина. К нему подключается header и footer через get_header и get_footer, а так же get_sidebar (если есть сайдбар). Создайте другие футер и хедер для магазина, например, header-shop.php и подключайте в шаблоне магазина как get_header('shop'). Футер аналогично. А вывод магазина уже кастомизируйте как вам нужно. (хедер и футер можете взять из другой темы, какая вам нужна.. ну и шаблоны магазина тоже)
    Ответ написан
    Комментировать
  • Как произвести сортировку произвольных записей (от большего до меньшего) по произвольному полю с числовым значением?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Смотрите сортировку по произвольному полю
    wp-kama.ru/function/wp_query#parametry-sortirovki-...

    Есть готовый пример
    $query = new WP_Query( 
    	 array ( 'post_type' => 'product', 'orderby' => 'meta_value', 'meta_key' => 'price' ) 
    );

    Привыкайте читать документацию
    Ответ написан
    9 комментариев
  • Как натянуть вертcтку Интернет магазина на wordpress?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Для начала ставите Woocommerce https://uk.wordpress.org/plugins/woocommerce/
    Потом читаем здесь.
    Тут описано как сделать поддержку woo в своей теме, как работать с шаблонами и т.д. И ссылки на доки.
    Ответ написан
    2 комментария
  • Как вывести записи на статическую главную страницу WordPress?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Читаем внимательно здесь wp-kama.ru/function/wp_query

    Примерно так

    <main>
      <h1>Главная</h1>
       <?php $args = array(
        .................
        );
       $query = new WP_Query($args);
           while ( $query->have_posts() ) {
        $query->the_post(); ?>
             <div>
                          <?php the_post_thumbnail();?>
                          <?php the_title(); ?>
                   </div>
      <?php } ?>
    </main>
    Ответ написан
  • Как настроить ACF?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Так вы совсем не то делаете. Вы ж уточняйте, на фронте нужно или в админке. Зачем вам опции. Создайте новую "группу полей", выберите тип материала, к которому они будут цепляться (Посты, страницы и т.д.). Создайте поле select и забейте туда нужные значения.
    Ответ написан