Wordpress

Получение категорий + под хайдом записей

Опубликовано: 25.06.2019 в 12:49

Автор:

Категории: Wordpress,Бложег

    'post',
    'child_of' => 0,
    'parent' => '',
    'hide_empty' => 0,
    'hierarchical' => 1,
    'include' => '9, 73, 8, 163, 3, 51, 128, 162, 90, 53, 200',
    'taxonomy' => 'category',
    'pad_counts' => false,
    ) );

    if( $categories ){
    foreach( $categories as $cat ){
    ?>

  • -1,
    'category' => $cat->term_id,
    'orderby' => 'date',
    'order' => 'DESC',
    'post_type' => 'post',
    ) );
    if(!empty($posts)) {
    ?>

Custom template woocommerce category

Опубликовано: 24.05.2019 в 14:55

Автор:

Категории: Wordpress,Бложег

В WordPress для создания отдельных шаблонов категорий можно создать фаил category-idсategory.php, а для woocommerce отличается, запись будет taxonomy-product_cat-адрес-категории.php

Contact form ошибка 404

Опубликовано: 10.10.2018 в 22:39

Автор:

Категории: Wordpress,Бложег

Разрабатывая очередной сайт http://bsk.kg/ я столкнулся что плагин контактной формы начал отдавать в ответе запроса ошибку 404, выяснил что ошибка эта происходит из-за некоторых строк оптимизации WP, а точнее отключения какого-то там API, которое нужно хрен пойми кому =)

Решение глупое и простое – нужно обновить постоянные ссылки

Адаптивные таблицы “на лету” и без велосипедов

Опубликовано: 12.05.2018 в 04:44

Автор:

Категории: JQ,Wordpress,Верстка

Нужна была адаптивная таблица, причем хорошая и без минимум внедрения и настройки, погуглив решения на флексах – понял что флексы еще не так хороши, вспомнил про добрый старый вариант который я использовал в обменнике, через data content, отличный вариант, только внедрять долго, а чего бы не сделать автоматическую подстановку из th ? Погуглив нашел отличное решение!

 

 

See the Pen jxxQRx by true404 (@true404) on CodePen.

В поисках оптимизации wordpress (не работает переключение между редакторами)

Опубликовано: 19.03.2018 в 22:31

Автор:

Категории: Wordpress

Попался мне заказ по оптимизации wordpress, чо там говорит PageSpeed ? Ага.

  • Ставим Compress JPEG & PNG images от png панды и оптимизируем картинки
  • Собираем js скрипты в 1 фаил
  • Минимизируем css/js

Всё еще ругается…

Удалите код JavaScript, блокирующий отображение верхней части страницы

Количество блокирующих скриптов на странице: 2. Они замедляют отображение контента.

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

Удалите код JavaScript, препятствующий отображению:

Google советует добавить async для родных скриптов wordpress, ну идем значит /wp-includes/class.wp-scripts.php ищем строку

$tag = "{$cond_before}{$before_handle}<script type='text/javascript' src='$src'></script>\n{$after_handle}{$cond_after}";

добавляем наш излюбленный async, радуемся первые пол часа, пока в админке не отваливается переключение между визуальным и html редактором

Плюём на гугл PageSpeed, возвращаем как было и идем заваривать себе чаю с печеньками

Табы записей Bootstrap

Опубликовано: 19.03.2018 в 22:17

Автор:

Категории: Wordpress

Понадобилось мне тут сделать табы записей на бустрапе, сделал на скорую руку, поэтому имеем 2 запроса, знаю что можно было обойтись одним, ну да ладно, кто станет пихать миллион табов ?

Регистрируем тип записи (в моём случае)

register_post_type( 'reviews', array(
'label' => 'Услуги',
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => true,
'supports' => array( 'title' )
) );

И выводим табы

<ul id="myTab" class="col-lg-3 col-md-4 nav nav-tabs">
<?php
global $post; 
$args = array('post_type' => 'service'); 
$custom_posts = get_posts($args);
foreach($custom_posts as $post) : setup_postdata($post); ?>
  <li><a href="#<?php echo get_the_ID(); ?>"><?php the_title(); ?></a></li>
  <?php endforeach;
wp_reset_postdata(); ?>
</ul>
 
<div class="tab-content col-lg-9 col-md-8">
  <?php
global $post; 
$args = array('post_type' => 'service'); 
$custom_posts = get_posts($args);
foreach($custom_posts as $post) : setup_postdata($post); ?>
  <div id="<?php echo get_the_ID(); ?>" class="tab-pane fade">
    <p> <?php the_field('описание_услуги'); ?></p>
  </div>
  	  <?php endforeach;
wp_reset_postdata(); ?>
</div>

А еще не забываем добавить active классы нашим табам

<script>
	(function($) {
		$(".nav-tabs li:first").addClass("active");
		$(".tab-content .tab-pane:first").addClass("in active");
		
	})(jQuery);
</script>

Контент записи в bootstrap окне (без json)

Опубликовано: 16.03.2018 в 22:58

Автор:

Категории: Wordpress

Ковырял тут огромный ленд, была задача – организовать контент в бустрап окне, на странице было всего 3 записи, поэтому обошелся без json, чуть попозже сделаем на нём, дабы сэкономить кучу кода

<?php
global $post;
$args = array('post_type' => 'price_hous'); 
$custom_posts = get_posts($args);
foreach($custom_posts as $post) : setup_postdata($post);
?>
 
 
       	<li>
      		<div class="item">
	      		<h3><? the_title(); ?></h3>
	      		<a class="btn open-popup" data-toggle="modal" data-target="#<?php echo get_the_ID() ?>">Подробнее</a>
	      	</div>
<div class="modal fade" id="<?php echo get_the_ID() ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Закрыть">
          <span aria-hidden="true">×</span>
        </button>
        <h4 class="modal-title" id="myModalLabel"><? the_title(); ?></h4>
      </div>
      <div class="modal-body">
        Содержимое модального окна...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
        <button type="button" class="btn btn-primary">Сохранить изменения</button>
      </div>
    </div>
  </div>
</div>  
      	</li>
		

 
<?php
endforeach;
wp_reset_postdata(); 
?>

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

Банальный .htaccess

Опубликовано: 09.03.2018 в 01:04

Автор:

Категории: Wordpress

В своих работах я ложу обычно этот .htaccess который отвечает за сжатие файлов, а что еще надо ?

AddDefaultCharset UTF-8
<ifModule mod_expires.c>

# Add correct content-type for fonts
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/x-font-woff .woff
AddType image/svg+xml .svg

# Compress compressible fonts
AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-opentype image/svg+xml

ExpiresActive On
ExpiresDefault "access plus 5 seconds"

# Cache Images
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/svg+xml "access plus 2592000 seconds"

# Cache Fonts
ExpiresByType application/vnd.ms-fontobject "access plus 2592000 seconds"
ExpiresByType application/x-font-ttf "access plus 2592000 seconds"
ExpiresByType application/x-font-opentype "access plus 2592000 seconds"
ExpiresByType application/x-font-woff "access plus 2592000 seconds"
ExpiresByType image/svg+xml "access plus 2592000 seconds"

# Cache other content types (Flash, CSS, JS, HTML, XML)
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 2592000 seconds"
ExpiresByType application/javascript "access plus 2592000 seconds"
ExpiresByType application/x-javascript "access plus 2592000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"

</ifModule>

<ifModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

</ifModule>