<?php echo do_shortcode( '[shortcode var="' . $var . '"]' ); ?>
add_shortcode()
вам нужно добавить var в список атрибутов шорткода, чтобы использовать ее. Пример #1.2 тут woocommerce_product_subcategories()
запрещена (устарела) с версии 3.3.1if ( is_product_category() ) {
$term = get_queried_object();
$taxonomy = $term->taxonomy;
echo '<h3>Категория: ' . $term->name . '<h3>'; // выводим текущую категорию
// получаем дочерние, если существуют
if ( $term_children = get_term_children( $term->term_id, $taxonomy ) ) {
echo '<ul>';
foreach ( $term_children as $key => $term_child ) {
$term_child = get_term_by( 'id', $term_child, $taxonomy );
// выводим дочерние
echo '<li><a href="' . get_term_link( $term_child->term_id, $taxonomy ) . '">' . $term_child->name . '</a></li>';
}
echo '</ul>';
}
}
// проверяем наличие тегов
if ( has_tag() ) {
$tags = wp_get_post_tags( get_the_ID() );
$tags_array = array();
foreach ( $tags as $key => $tag ) {
$tags_array[] = $tag->term_id; // собираем в массив
}
$args = array (
'post_type' => 'post',
'tag__in' => $tags_array, // получаем посты, имеющие такой же тег
'post__not_in' => array( get_the_ID() ), // исключаем текущий пост
'posts_per_page' => 3,
'orderby' => rand
);
} else {
// или получаем любые последние посты
$args = array (
'post_type' => 'post',
'posts_per_page' => 3,
'orderby' => date
);
}
pre_get_posts
с условием $query->is_front_page() && $query->is_main_query()
pre_get_posts
установить для него значение не равное true:if( $query->is_front_page() && $query->is_main_query() ) {
$query->set( 'meta_key', 'custom_hide_post' );
$query->set( 'meta_value', 'true' );
$query->set( 'meta_compare', '!=' );
}
the_views()
уже имеет echo. Вообще кодстайл ВП подразумевает, что функции с префиксом the_ отвечают за вывод контента с помощью echo, а с префиксом get_ за получение данных для дальнейшей обработки, т.е. returnecho '<span class="postviews">';
the_views();
echo '</span>';
remove_action()
и add_action()
$post_date = get_the_date( "Y-m-d" ); // дата поста
$current_time = date( "Y-m-d H:i:s" ); // текущее время
$post_date_unix = strtotime($current_time); // Unix
$future_time = date( "Y-m-d H:i:s", strtotime($current_time . ' + 3 hours') ); // +3 часа от текущего времени
join()
if ( is_single() ) {
global $post;
foreach( get_the_category($post->ID) as $category ) {
$classes[] = $category->category_nicename;
}
}
body_class()
и post_class()
или эту статью wp_set_post_terms()
pre_get_posts()
фильтровать основной запрос на не проходящие проверку записи