Skip to content

Instantly share code, notes, and snippets.

@levnhub
Last active July 27, 2018 01:27
Show Gist options
  • Save levnhub/aa815249638bf2873df09e6208bf946b to your computer and use it in GitHub Desktop.
Save levnhub/aa815249638bf2873df09e6208bf946b to your computer and use it in GitHub Desktop.
wp loops
<?php // Выводим посты
global $post; // не обязательно
// параметры по умолчанию
$args = array(
'numberposts' => 5, // 5 записей
'category' => 9, // из рубрики 9
'orderby' => 'date',
'order' => 'DESC',
'include' => array(),
'exclude' => array(),
'meta_key' => '',
'meta_value' => '',
'post_type' => 'post',
'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса
);
$myposts = get_posts( $args );
foreach( $myposts as $post ){ setup_postdata($post);
// стандартный вывод записей
}
wp_reset_postdata(); // сбрасываем переменную $post
?>
<?php
// Получить данные рубрик, в том числе и без записей, у которых родительская рубрика с ID = 6
$cat_data = get_categories( array( 'parent' => 4 ) );
// Если подрубрики нашлись - начинаем их обработку
if ( $cat_data ) {
foreach ( $cat_data as $one_cat_data ){
// Возвращает название подрубрики в виде ссылки
$block_cats = sprintf( '<div class="name-cat"><a href="%s">%s</a></div>', get_category_link( $one_cat_data->term_id ) , $one_cat_data->cat_name );
// Получаем посты с подрубрики (они там 100% есть, потому что get_categories по дефолту получает только такие)
$cat_posts_data = get_posts( array( 'category' => $one_cat_data->cat_ID ) );
foreach ( $cat_posts_data as $one_cat_post_data ){
// Возвращает название записи в виде ссылки и сливает с предыдущими блоками (в том числе и блоком из "названия рубрики")
$block_cats .= sprintf( '<div class="name-post"><a href="%s">%s</a></div>', get_the_permalink( $one_cat_post_data->ID ) , $one_cat_post_data->post_title );
}
}
// Выводим на экран название рубрики + 5 записей из неё ( см. дефолтные значения get_posts, можно увеличить )
printf( '<div class="cat-block">%s</div>', $block_cats );
}
// Use default tags
$tags1 = get_the_tags();
if ($tags1) {
foreach($tags1 as $tag) {
echo '<li>' . $tag->name . '</li>';
}
}
// Add additional tags
// to function.php
add_action( 'init', 'create_taxonomies', 0 );
function create_taxonomies(){
register_taxonomy('tags2', 'post', array(
'hierarchical' => false,
'label' => 'Метки 2',
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'tags2' ),
'show_admin_column' => true,
));
}
// to page template
$tags2 = wp_get_object_terms($post->ID, 'tags2');
if ($tags2) {
foreach($tags2 as $tag) {
echo '<li>' . $tag->name . '</li>';
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment