Поддержка Проблемы и решения как определить является ли главной страница через php

  • Извиняюсь, возможно из-за того что давно не спал, что-то я всю ночь пытаюсь и никак не получается, сделать, чтобы статичная страница (которая выводится через post.php) определяла является ли эта страница главной, и если является, то она принимала другой вид. Т.е. на пальцах: if is_page()=start делать то-то, else делать то-то.
    И маленький вопрос не в тему: как использовать if else, чтобы они были не в одном <?php ?>, а то там много html и php

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    if ( 'page' == get_option('show_on_front') && is_page(get_option('page_on_front')) )
    <?php if ( ... ) : ?>
    ...
    <?php else : ?>
    ...
    <?php endif; ?>

    Видел я один шаблончик, так там с помощью такой примочки выводилось 4и разных сайдбара.

    <?php
                   $frontpage = false;
                   if(is_front_page()){
                    $frontpage = true;
                   query_posts($query_string."&cat=".$blog_id."&posts_per_page=".$hp_post_per_page);
                   }
                   else if(post_is_in_descendant_category($blog_id))
                   {
                    query_posts($query_string."&posts_per_page=".$hp_post_per_page_blog);
                   }
                    else if(post_is_in_descendant_category($portfolio_id))
                   {
                    query_posts($query_string."&posts_per_page=".$hp_post_per_page_portfolio);
                   }
                    else if(is_archive())
                   {
                    query_posts($query_string."&posts_per_page=".$hp_post_per_page_archive);
                   }
                    else if( is_search() )
                   {
                    query_posts($query_string."&posts_per_page=".$hp_post_per_page_search);
                   }   
    
                   ?>

    Переменные это id номера страниц и категорий. Вот пример цикла:

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    
                    <?php if(post_is_in_descendant_category($blog_id) || is_category($blog_id) )
                   {?>

    А вот вывод сайдбара:

    <?php
                 if($frontpage )
                 {
                   if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Home Sidebar") ) :
                   endif;
                 }
                 else if( post_is_in_descendant_category($portfolio_id) )     // portfoli
                 {
                   if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Portfolio Sidebar") ) :
                   endif;
                 }
                 else if(post_is_in_descendant_category($blog_id) )     // blog
                 {
                   if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Blog Sidebar") ) :
                   endif;
                 }
                 else if(is_page())
                 {
                   if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Page Sidebar") ) :
                   endif;
                 }
                 ?>

    Наверняка есть способ и проще…

    Спасибо! Воспользовался я способом Сергея, но заметил очень интересную штуку:
    Страница сделана как «личная», чтобы в меню не высвечивалась… в моем FF все нормально, а вот Ослик не видит ее хоть убей, пока не убираешь галку «личная». Интересно с чем это связанно, и может в следующих версиях профиксят?

    Модератор Юрий

    (@yube)

    «Личная» страница видна только своему владельцу.

    точно, я забыл, что не разлогинился, спасибо =)

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «как определить является ли главной страница через php» закрыта для новых ответов.