WordPress is page



Привет всем! Все кто работал с 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.
wordpres-publish-data-edit-screen

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:
post-type-switcher-admin-post-type-change-link Click on Edit link next to Post Type and change the Post Type to desired value as shown below:
post-type-switcher-admin-post-type-change-dropdown

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) Как добавить картинку с ссылкой на сам пост

Для начала добавим Произвольное поле в пост.

Wordpress is page

Чтобы отобразить изображение и прикрепить к нему ссылку на пост, помещаем следующий код в цикл (перед самим текстом поста):

Не забывайте, что произвольных полей после поста может быть несколько. Похожий эффект можно увидеть на 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”, и там указать нужную тему.

Wordpress is page

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>";


/form></div>
<!-- конец боковой колонки -->

www.wp-info.ru

Testing for sub-Pages

There is no is_subpage() function yet, but you can test this with a little code:

Snippet 1

 // If outside the loop. $post = get_post();  if ( is_page() && $post->post_parent ) {  // This is a subpage } else {  // This is not a subpage } 

You can create your own is_subpage() function using the code in Snippet 2. Add it to your functions.php file. It tests for a parent page in the same way as Snippet 1, but will return the ID of the page parent if there is one, or false if there isn’t.

Snippet 2

Expand full source codeCollapse full source code

It is advisable to use a function like that in Snippet 2, rather than using the simple test like Snippet 1, if you plan to test for sub pages frequently.


To test if the parent of a page is a specific page, for instance “About” (page id pid 2 by default), we can use the tests in Snippet 3. These tests check to see if we are looking at the page in question, as well as if we are looking at any child pages. This is useful for setting variables specific to different sections of a web site, so a different banner image, or a different heading.

Snippet 3

 <?php if ( is_page( 'about' ) || '2' == $post->post_parent ) {  	// the page is "About", or the parent of the page is "About" 	$bannerimg = 'about.jpg'; } elseif ( is_page( 'learning' ) || '56' == $post->post_parent ) {	 	$bannerimg = 'teaching.jpg'; } elseif ( is_page( 'admissions' ) || '15' == $post->post_parent ) {  	$bannerimg = 'admissions.jpg'; } else {  	$bannerimg = 'home.jpg'; // just in case we are at an unclassified page, perhaps the home page }	 ?> 

Snippet 4 is a function that allows you to carry out the tests above more easily. This function will return true if we are looking at the page in question (so “About”) or one of its sub pages (so a page with a parent with ID “2”).

Snippet 4

Expand full source codeCollapse full source code

Add Snippet 4 to your functions.php


file, and call is_tree( 'id' ) to see if the current page is the page, or is a sub page of the page. In Snippet 3, is_tree( '2' ) would replace “is_page( 'about' ) || '2' == $post->post_parent” inside the first if tag.

Note that if you have more than one level of pages the parent page is the one directly above and not the one at the very top of the hierarchy.

developer.wordpress.org


You May Also Like

About the Author: admind

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.