Наиболее часто используемые фрагменты кода в шаблонах Вордпресс.

Вывод списка ссылок на подкатегории категории с ID 3

<ul>
<?php
$args = array(
'type' => 'post',
'child_of' => 3,
'parent' => '',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 0,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => 0,
'taxonomy' => 'category',
'pad_counts' => false,
// полный список параметров смотрите в описании функции http://wp-kama.ru/function/get_terms
);
$categories=get_categories($args);
foreach($categories as $category) {
echo '<li><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </li> ';
}
?>
</ul>

Использование условных тегов для категории

<?php if(is_category( 'Featured' )) : ?>
<h1 class="archive-title">Featured Articles:</h1>
<?php else: ?>
<h1 class="archive-title">Category Archive: <?php single_cat_title(); ?> </h1>
<?php endif; ?>


Вывод постов с ID 1 и ID 18

<?php
query_posts(array('post__in' => array(1, 18), 'order' => 'ASC'));
while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile;
wp_reset_query();
?>

Если оставить array пустым - array() будут выводиться все посты

Цикл вывода блога рубрики

<!-- Start the Loop. -->
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

 <!-- Далее проверяется, находится ли текущая запись в рубрике 3. -->
 <!-- Если да, то блоку div, будет присвоен класс "post-cat-three". -->
 <!-- Иначе, блоку div будет присвоен класс "post". -->
 sli
<?php if ( in_category('3') ) { ?>
           <div class="post-cat-three"> в место, где будет выводиться пагинация:
 <?php } else { ?>
           <div class="post">
 <?php } ?>

 <!-- Отобразить Заголовок как постоянную ссылку на Запись. -->
 
<h2><a href="/<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

 <!-- Отобразить время. --> 
<small><?php the_time('F jS, Y'); ?></small>

 <!-- Отобразить Содержимое Записи внутри div. -->
 <div class="entry">
   <?php the_content(); ?>
 </div>

 <!-- Отобразить список Рубрик Записи, разделенных запятой. -->
 <p class="postmetadata">Posted in <?php the_category(', '); ?></p>
 </div> <!-- closes the first div box -->

 <!-- Остановить Цикл (но есть ключевое слово "else:" - смотрите далее). -->
 <?php endwhile; else: ?>

 <!-- В первом "if" проверяется существуют ли каки-либо записи для  -->
 <!-- вывода.  Эта часть "else", говорит что делать, если записей не нашлось.-->
 <p>Sorry, no posts matched your criteria.</p>

 <!-- ДЕЙСТВИТЕЛЬНО остановить Цикл -->
 <?php endif; ?>

Вывод постов из конкретной категории

Для категории с ID 15:

<?php 
$query = new WP_Query('cat=15&order=ASC&posts_per_page=-1');
while ( $query->have_posts() ) {
$query->the_post();
the_content();
}
?>


Для категории с алиас "slider":

<?php 
$query = new WP_Query('category_name=slider&order=ASC&posts_per_page=-1');
while ( $query->have_posts() ) {
$query->the_post();
the_content();
}
?>

 

Шаблон для категорий с дочерними категориями

<!--Выводим шапку-->
<?php get_header(); ?>
<!--Индивидуальные стили-->
<div class="span-24" id="contentwrap">
<div class="span-16">
<div id="content">
<!--Заголовок рубрики-->
<h2><?php single_cat_title(); ?></h2>
<!--Код вывода заголовков постов с миниатюрами-->
<div class="katalog">
<?php
$cat_args=array(
'child_of' => 10,
'orderby' => 'name',
'order' => 'ASC'
);
$categories=get_categories($cat_args);
foreach($categories as $category) {
$args=array(
'showposts' => -1,
'category__in' => array($category->term_id),
'caller_get_posts'=>1
);
$posts=get_posts($args);
if ($posts) {
echo '<h2>'.$category->name.'</h2> ';
foreach($posts as $post) {
setup_postdata($post); 
?>
<ul>
<li> 
<a href="/<?php the_permalink() ?>"><?php the_post_thumbnail(array(80,70)); ?></a>
<a href="/<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
</li>
</ul>
<?php
} 
} 
} 
?>
</div>
<!--Конец кода вывода постов из категории-->
</div>
</div>
<!--Тег вывода сайдбара-->
<?php get_sidebars(); ?>
</div>
<!--Конец индивидуальных стилей-->
<!--Тег вывода подвала-->
<?php get_footer(); ?>

'child_of' => 10, это ID родительской категории

 

Вывод пользовательских записей:

<?php
$slider_collekcii_var = new WP_Query( array( 'post_type' => 'slider_collekcii', 'posts_per_page' => -1, 'order' => 'ASC' ) );
if ( $slider_collekcii_var->have_posts() ) : ?>
<div class="slider">
<div class="slider-2">
<?php while ( $slider_collekcii_var->have_posts() ) : $slider_collekcii_var->the_post(); ?>
<div>
<?php the_post_thumbnail(); ?>
<h2><?php the_title(); ?></h2>
<p><?php the_content(); ?></p> </div>
<?php endwhile; ?>
</div>
</div>
<?php endif; ?>

 

Вывод названия категории в файле single.php

<?php while (have_posts()) : the_post(); ?>
<?php the_category(', ');?>
<?php endwhile; ?>

(если несколько, то через запятую будут, так как - указано (', ') тут)

 

Задать класс для div-оболочки сайта в зависимости от id рубрики

<?php 
$getcat = get_the_category();
$cat = $getcat[0]->cat_ID; //получаем ID категории записи
?>
<body <?php body_class(); ?>>
<div class="cat<?php echo $cat; ?>">

 

Постраничная навигация в Wordpress

Этот код необходимо добавить в function.php:

function wp_corenavi() {
global $wp_query;
$pages = '';
$max = $wp_query->max_num_pages;
if (!$current = get_query_var('paged')) $current = 1;
$a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
$a['total'] = $max;
$a['current'] = $current; $total = 1; //1 - выводить текст "Страница N из N", 0 - не выводить
$a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей
$a['end_size'] = 1; //сколько ссылок показывать в начале и в конце
$a['prev_text'] = '«'; //текст ссылки "Предыдущая страница"
$a['next_text'] = '»'; //текст ссылки "Следующая страница" if ($max > 1) echo '<div class="navigation">';
if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
echo $pages . paginate_links($a);
if ($max > 1) echo '</div>';
}

Этот код нужно добавить в место, где будет выводиться пагинация:

<?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>

 

Вызов шаблона Вордпресс в зависимости от категории:

<?php
$post = $wp_query->post;

if (in_category('4')) {
include(TEMPLATEPATH.'/single-seminary.php');
}
if (in_category('8')) {
include(TEMPLATEPATH.'/single-chto-govoriat.php');
}
else {
include(TEMPLATEPATH.'/single-default.php');
}
?>

 

Настройка вывода вступительного текста в блоге Wordpress (многоточие, скобки, количество слов и т.д.:

Вставляем слюедующий код в function.php и редактируем на свое усмотрение:

function wp_new_excerpt($text)
{
if ($text == '')
{
$text = get_the_content('');
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text);
$text = nl2br($text);
$excerpt_length = apply_filters('excerpt_length', 40);
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '...');
$text = implode(' ', $words);
}
}
return $text;
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'wp_new_excerpt');

 

Разное:

<?php echo get_template_directory_uri(); ?> - путь к шаблону

<?php the_post_thumbnail(array(80,70)); ?> - вывод миниатюры записи (80 и 70 - ширина и высота)

<?php echo get_the_excerpt() ?> - вывод необязательного краткого содержаня вашего текста, которое можно использовать в шаблонах темы

<?php echo category_description( $category_id ); ?> - описание категории

<?php single_cat_title(); ?> - заголовок категории

<?php echo get_cat_name('10'); ?> - заголовок категории с ID=10

<?php the_permalink() ?> - ссылка на полный текст записи (например: <a href="/<?php the_permalink(); ?>"> постоянная ссылка</a> )

<?php echo get_post_meta($post->ID, 'wpcf-thumb_img', true); ?> - вывод содержимого произвольного поля с ID wpcf-thumb_img

<img src="/<?php the_field('extra_img_1', $post->ID); ?>" alt=""> - либо так (для поля картинки, созданной при помощи Advanced Custom Fields)

<?php the_title(); ?> - заголовок поста

<?php echo get_category_link($category);?> - получает корректную ссылку на страницу категории по переданному ID категории.

<?php echo types_render_field("cube"); ?> - значение поля "cube"

<?php get_search_form(); ?> - вывод поиска по сайту

<?php dynamic_sidebar( 'sidebarname' ); ?> - вывод сайдбара

<?php the_time('F jS, Y'); ?> - вывод даты поста

wp_enqueue_script( 'main', get_template_directory_uri() . '/js/main.js', array(), '', true); - подключение скрипта в файле function.php, добавление , array(), '', true позволяет добавлять скрипты перед закрывающим body

wp_enqueue_style( 'main', get_template_directory_uri() . '/css/main.css'); - подключение css в файле function.php

<?php wp_nav_menu( array( 'theme_location' => 'menu-1', container => false, 'menu_id' => 'luboj_id' ) ); ?> - вывод меню

 

Комментарии   

0 #1 Михаил 01.08.2016 21:48
Хорошая подборка, просто и изящно!
Ещё бы комментарий к списку "Разное" - цены бы не было! ;-)
Цитировать
0 #2 Web Sputnik 16.09.2016 20:15
Цитирую Михаил:
Хорошая подборка, просто и изящно!
Ещё бы комментарий к списку "Разное" - цены бы не было! ;-)

сделаем :roll:
Цитировать

Добавить комментарий


Защитный код
Обновить