В начале файла с кодом страницы нужно указать название шаблона страницы:
<?php /* Template Name: TemplateName */ ?>
<?php bloginfo('stylesheet_directory'); ?>
Вывод произвольного поля (для текущей страницы или записи):
<?php the_field('FieldName'); ?>
Получение произвольного поля (для текущей страницы или записи) в переменную:
<?php $VarFieldName = get_field("FieldName"); ?>
Получение и вывод произвольного поля из страницы с указанным ID (в примере ID = 10):
<?php echo $VarFieldName = get_field(FieldName, 10); ?>
Вывод информации в случае, если произвольное поле не пустое:
<?php if ( get_field("FieldName") != '') { echo 'something'; } ?>
<?php require_once 'dir/FileName.php'; ?>
Для того, чтобы появилась панель администратора и подгрузились стандартные функции WP нужно вставить wp_head и wp_footer в соответствующих местах на странице:
<!DOCTYPE html> <html> <head> ... <?php wp_head(); ?> </head> <body> ... <?php wp_footer(); ?> </body> </html>
Перед выводом меню, следует добавить соответствующую функцию в файл functions.php:
if (function_exists('add_theme_support')) { add_theme_support('menus'); };
В месте, где мы хотим вывести меню, необходимо вставить код:
<?php wp_nav_menu( array('menu' => 'MenuName' )); ?>
Вот код непосредственно для страницы:
<?php $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $custom_args = array( 'post_type' => 'post', 'category_name' => 'CategoryName', 'posts_per_page' => 10, 'paged' => $paged ); $custom_query = new WP_Query( $custom_args ); if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?> <!-- ссылка на полную версию --> <?php the_permalink() ?> <!-- вывод поля из Произвольные поля --> <?php the_field('FieldName'); ?> <!-- вывод тегов через слеш --> <?php the_tags( '', ' / ', '' ); ?> <!-- вывод даты --> <?php echo get_the_date( 'F'.' '.'d'.', '.'Y', '', ''); ?> <?php endwhile; endif; ?> <!-- pagination --> <?php if (function_exists(custom_pagination)) { custom_pagination($custom_query->max_num_pages,"",$paged); } ?> <?php wp_reset_postdata(); ?>
А этот код потребуется вставить в functions.php
function custom_pagination($numpages = '', $pagerange = '', $paged='') { if (empty($pagerange)) { $pagerange = 2; } /** * This first part of our function is a fallback * for custom pagination inside a regular loop that * uses the global $paged and global $wp_query variables. * * It's good because we can now override default pagination * in our theme, and use this function in default quries * and custom queries. */ global $paged; if (empty($paged)) { $paged = 1; } if ($numpages == '') { global $wp_query; $numpages = $wp_query->max_num_pages; if(!$numpages) { $numpages = 1; } } /** * We construct the pagination arguments to enter into our paginate_links * function. */ $pagination_args = array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%', 'total' => $numpages, 'current' => $paged, 'show_all' => False, 'end_size' => 1, 'mid_size' => $pagerange, 'prev_next' => True, 'prev_text' => __('< PREVIOUS'), 'next_text' => __('NEXT >'), 'type' => 'plain', 'add_args' => false, 'add_fragment' => '' ); $paginate_links = paginate_links($pagination_args); if ($paginate_links) { echo '<div class="custom_pager">'; echo $paginate_links; echo '</div>'; } }
Узнаем категорию записи:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php $temp_cat = get_the_category(); ?> <?php $category = $temp_cat[0]->cat_name; ?> <?php echo $category ?> <?php endwhile; endif; ?>
Зачем так, ведь существует стандартная функция? Чтобы можно было реализовать разный вывод контента в зависимости от того, к какой категории относится запись. К примеру:
<?php if ($category == 'blog' ) { echo 'Виджет для Записи, которая относится к категории blog'; } else if ($category == 'news' ) { echo 'Виджет для Записи, которая относится к категории news'; } ?>
<?php wpml_e__if_language( '', 'ru' ); wpml_e__if_language( '', 'uk' ); ?>
Определение текущего языка страницы:
<?php global $sitepress; $current_lang = $sitepress->get_current_language(); ?>
Вывод постов можно сделать еще и так:
< ?php $posts = get_posts ("category=1&orderby=date&numberposts=4"); ?> < ?php if ($posts) : ?> < ?php foreach ($posts as $post) : setup_postdata ($post); ?> < ?php endforeach; wp_reset_postdata(); ?> < ?php endif; ?>
Такой метод позволяет на одной странице настроить в разных блоках вывод постов разных категорий
А этот код пригодится, если хотите создать в одном файле шаблон отдельно для рубрик первого уровня и отдельно для всех остальных дочерних рубрик:
category_parent == 0) { // тут мы вставляем нужный нам код для вывода инфы, если это рубрика первого уровня } else { // тут мы вставляем нужный нам код для вывода инфы, если любая другая дочерняя рубрика } ?>
Еще один пример вывода меню. Во-первых этот код позволяет выводит разные менюшки, например, если вы хотите на главной вывести одно меню, на любой другой странице – вывести другое меню. А также можно для тега меню задать любой необходимый вам класс или другой атрибут, в примере был указан класс “navbar”:
'header-menu', 'menu' => 'header-menu', 'container' => '', 'items_wrap' => '%3$s' ) ); } else { wp_nav_menu(array( 'theme_location' => 'header-menu-page', 'menu' => 'header-menu-page', 'container' => '', 'items_wrap' => '%3$s' ) ); } ?>