Привет всем! Все кто работал с WordPress особенно те, кто разрабатывает коммерческие сайты на этом движке, сталкивались с использованием функции is_page().
Кратко говоря, эта функция позволяет делать выборку определенных станиц по ID, title, slug, а также делать выборку целых по массиву данных.
Вот как выглядит пример использования данной функции взятый из сайта developer.wordpress.org:
// When any single Page is being displayed. is_page(); // When Page 42 (ID) is being displayed. is_page( 42 ); // When the Page with a post_title of "Contact" is being displayed. is_page( 'Contact' ); // When the Page with a post_name (slug) of "about-me" is being displayed. is_page( 'about-me' ); /* * Returns true when the Pages displayed is either post ID 42, * or post_name "about-me", or post_title "Contact". * Note: the array ability was added in version 2.5. */ is_page( array( 42, 'about-me', 'Contact' ) );
Как мы видим из последнего примера с массивом, мы можем выводить определенные блоки с информацией на целом списке страниц, которые мы указываем через запятую.
В этой статье я хотел бы показать, еще два альтернативных метода выводить информацию на различных страницах с помощью функции is_page().
Первый метод это использование логических операторов PHP, в частности использование оператора ИЛИ («||»).
Как это выглядит на практике:
if(is_page(42) || is_page('about-me') || is_page('Contact')) { /* Тут вставляем нужный блок с информацией */ }
В примере выше используется конструкция if, которая является условием, при исполнении которого и буде выводиться заданный нами блок. Зачастую, на практике, нужно на разных шаблонах страниц выводить различные типы блоков, например различные типы слайдеров или же разные формы для оформления заказа, и при этом всем есть общие страницы, для которых используется стандартный блок, например «заказать звонок». Немного запутано написал. Для наглядности, например у вас в дизайне есть блок для формы заказа звонка, но на странице прайс-листа вы хотите, что бы в этом же блоке вместо обратного звонка выводилась форма заказа актуального прайс-листа на сегодняшнее число. Так думаю, будет понятнее.
Именно в таких случаях мы можем расширить конструкцию if:
if (is_page(42)) { /* Выводим блок для первой страницы */ } elseif(is_page('about-me')) { /* Выводим блок для второй страницы */ } else { /* Код, который будет на всех остальных страницах */ }
Вот с помощью таких простых функций вы можете уже начать выводить различную информацию на нужных вам страницах. Подписывайтесь на обновления моего сайта, впереди еще много чего интересного.
webprovincia.com
Add the Blog Page to Your Menu
You blog posts are also showing on your blog page, but we’ll need to add the page to your menu so you can access it easily.
From your admin area go to Appearance–>Menus, check the Blog page and click Add to Menu, then click Save Menu.
You’ll now be able to access the blog page from your main menu on your site.
I hope this article helped you learn how to create a blog page in WordPress. For feedback and questions please leave us a comment or reach us on twitter @ThemeLab.
www.isitwp.com
Convert page to post manually
You can always convert page to post by manually creating a new post and deleting the old page. This will not change the publishing date though. You can manually change that to old value.
Convert using plugin post type switcher
You can use wordpress plugin post type switcher to convert post to page (or vice versa) one at a time. Once the plugin is installed and activated, go to edit page admin ui. You should see Post Type value in publishing options as shown below:
Click on Edit link next to Post Type and change the Post Type to desired value as shown below:
What happens when you change Post Type in wordpress
WordPress uses wp_posts table to store both posts and pages. The column post_type decides the type of the post. When you change a post type to page the value of this column also changes accordingly.
Here is the results of query select distinct post_type from wp_posts
attachment nav_menu_item page post revision
infoheap.com
Query Posts
Query Posts используется для контроля над выводом постов внутри цикла. С его помощью можно управлять тем, что выводить, когда выводить и как выводить.
8) Выводим последние посты
последние 5 постов:
9) Посты определённой категории
Выводим 5 постов категории с categoryID 2
10) Исключить категорию
Допустим, нам нужно исключить отображение какой- либо категории (categoryID 2):
Произвольные поля (Custom Field )
Custom Field — очень полезная вещь, довольно часто используется для вывода информации после поста. Используется, например, для вывода информации об авторе поста.
11) Как добавить картинку с ссылкой на сам пост
Для начала добавим Произвольное поле в пост.
Чтобы отобразить изображение и прикрепить к нему ссылку на пост, помещаем следующий код в цикл (перед самим текстом поста):
Не забывайте, что произвольных полей после поста может быть несколько. Похожий эффект можно увидеть на Best Web Gallery, где подобным образом отображены миниатюры, ссылки URL и подсветка информации. Также о произвольных полях можно почитать в данной статье — использование custom fields в WordPress.
WP List Pages
Тег wp_list_pages используется для отображения списка страниц в хедере и сайдбаре
12)Site map
Для того, чтобы отобразить Site map, достаточно добавить этот код в страницу sitemap.php
Замечу, что pageID 12 исключена, т.к. это страница — сама sitemap.php, и её не нужно отображать…
Метод работает, хотя, наверное, лучше воспользоваться более стандартным методом и построить карту сайта с помощью плагина dagon design sitemap generator.
13) Динамичное субстраничное меню
Добавьте этот код в sidebar.php и он отобразит субстраничное меню, если субстраницы есть на этой странице:
14) Тема страницы
Хорошо бы не упускать и такую функцию как Page Template, которая позволяет задавать новую тему для вашего блога. Для начала, нужно создать саму тему, затем нужно обозначить странице своб собственную тему. Вот как она выглядит (напр., portfolio.php)
При написании или редактировании страницы, справа можно будет увидеть “Page Template”, и там указать нужную тему.
wordpressinside.ru
Работающие примеры
Здесь несколько примеров для демонстрации того, как следует использовать условные теги.
Одиночный пост
Этот пример показывает как использовать условный тег is_single () для того, чтобы отобразить информацию только на странице одиночного поста:
<?php if (is_single())
{
echo 'Это один из постов в рубрике ' . single_cat_title() . ', вот так!';
}
?>
Разница, основанная на дате
Если кто-то просматривает ваш блог по датам, то он увидит «помеченные» посты разных лет разным цветом бэкграунда:
<?php
// начинаем Цикл
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2 id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка <?php the_title(); ?>">
<?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small><?php
// если отображаем архив даты
if (is_date())
{
if (date('Y') != get_the_date('Y'))
{
// этот пост был написан в прошлом году
// поэтому припишем css класс "oldentry" к блоку с постом,
// чтобы придать ему отличный от других блоков вид
echo '<div class="oldentry">';
} else {
echo '<div class="entry">';
}
} else {
echo '<div class="entry">';
}
the_content('Далее »');
?>
</div>
Разный контент в боковой колонке (сайдбаре)
Этот пример выводит различный контент в боковой колонке в зависимости от того, какой тип контента просматривается в текущий момент.
<!-- начало боковой колонки -->
<div id="sidebar">
<?php
// let's generate info appropriate to the page being displayed
if (is_home()) {
// на главной странице покажем список рубрик первого уровня:
echo "<ul>";
wp_list_cats('optionall=0&sort_column=name&list=1&children=0');
echo "</ul>";
} elseif (is_category()) {
// на странице рубрики покажем все рубрики всех уровней
echo "<ul>";
wp_list_cats('optionall=1&sort_column=name&list=1&children=1&hierarchical=1');
echo "</ul>";
} elseif (is_single()) {
// на странице одиночного поста покажем... что-нибудь, впишите сами:} elseif (is_page()) {
// на странице Постоянной страницы. А какой именно?
if (is_page('Обо мне')) {
// Постоянная страница About
echo "<p>Это страница обо мне!</p>";
} elseif (is_page('Используемые плагины')) {
echo "<p>На этой странице список используемых плагинов, я использую WordPress версии " . bloginfo('version') . "</p>";
} else {
// для всех других Статичных страниц
echo "<p>Привет, я Педро!</p>";