За последние 24 часа нас посетил 17831 программист и 1637 роботов. Сейчас ищут 2112 программистов ...

Динамический h1 в хэдере

Тема в разделе "Сделайте за меня", создана пользователем dumb112, 1 сен 2014.

  1. dumb112

    dumb112 Новичок

    С нами с:
    22 авг 2014
    Сообщения:
    2
    Симпатии:
    0
    Помогите, пожалуйста, блондинке. Буду оочень благодарна.

    Нужно сделать динамический h1 для шапки. Когда в записи присутствует заголовок h1, то в хэдере он меняется на простой текст. А на страницах с категориями, на главной и пр. страницах, где нет записи, там h1 присутствует в названии сайта. Пробовала вот этот код из примера:

    Код (Text):
    1.  <?php if (is_single()) { ?>
    2.          <span class=”blog_name”><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a> </span>
    3.          <span class=”blog_descr”><?php bloginfo('description'); ?></span>
    4.       <?php } else { ?>
    5.          <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1>
    6.          <h2><?php bloginfo('description'); ?></h2>
    7.       <?php }
    Но у меня ситуация немного другая:

    Код (Text):
    1. if ( !function_exists( 'earthpro_branding' ) ) {
    2. function earthpro_branding() {?>
    3. <div class="site-branding">
    4. <div style="width: 25%; height: 100%;"><img src="http://site.ru/wp-content/uploads/2014/08/logo.png" align="left"></img></div>
    5.     <div style="width: 75%; float: right;"><p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></div></p></div>
    6.     <div style="width: 75%; float: right;"><p class="site-description"><?php bloginfo( 'description' ); ?></p></div>
    7. </div>
    8. <?php }
    9. }
    Подскажите, пожалуйста, как реализовать функцию в этом случае.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    Вроде что-то спрашиваешь, а что непонятно. Все эти "в названии сайта", "страницы с категориями" и т.п. это всё из твоего мира, нам сии понятия неведомы. Программа это переложение четкой инструкции что надо сделать на синтаксис языка программирования.

    Тебе объяснить что такое if-else или в чем твоя проблема?
     
  3. dumb112

    dumb112 Новичок

    С нами с:
    22 авг 2014
    Сообщения:
    2
    Симпатии:
    0
    Тогда опишу все дословно. Никак не думала, что такая тема - это что-то "из моего мира". Тут вопросы потому и называются "от блондинок", что не предусматривается такое знание php, как у вас.

    Требуется реализовать на движке Wordpress динамический заголовок h1 в шапке сайта.
    Как известно, он должен быть единожды использован на странице. Но на главной, где выведены списки записей (а также и в категориях, где они тоже выведены), заголовок h1 повторяется несколько раз, так как присутствует в каждой записи. Нужно реализовать код, как в первом примере, чтобы, когда h1 не присутствует в статье (то есть открыта главная страница или категории), он выводился в заголовке сайта. А если h1 присутствует в заголовке статьи (открыта конкретная статья), то заголовок сайта должен быть в теге div, span или p.

    Пробовала сделать, как в примере, но ничего не вышло, так как плохо разбираюсь в коде. Поэтому и прошу помощи у знающих людей.
    Если все еще непонятно, о чем я, посмотрите на код:

    Было:

    Код (Text):
    1.  <?php
    2.          $get_logo_image = get_theme_option('logo');
    3.          if ($get_logo_image != '') {
    4.    ?>
    5.       <a href="<?php bloginfo('url'); ?>"><img src="<?php echo $get_logo_image; ?>" alt="<?php bloginfo('name'); ?>" title="<?php bloginfo('name'); ?>" class="logoimg" /></a>
    6.    <?php } else { ?>
    7.       <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1>
    8.       <h2><?php bloginfo('description'); ?></h2>
    9.    <?php } ?>
    Стало:
    Код (Text):
    1. <?php
    2.    $get_logo_image = get_theme_option('logo');
    3.    if($get_logo_image != '') { ?>
    4.       <a href="<?php bloginfo('url'); ?>"><img src="<?php echo $get_logo_image; ?>" alt="<?php bloginfo('name'); ?>" title="<?php bloginfo('name'); ?>" class="logoimg" /></a>
    5.    <?php } else { ?>
    6.       <?php if (is_single()) { ?>
    7.          <span class=”blog_name”><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a> </span>
    8.          <span class=”blog_descr”><?php bloginfo('description'); ?></span>
    9.       <?php } else { ?>
    10.          <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1>
    11.          <h2><?php bloginfo('description'); ?></h2>
    12.       <?php }
    13.    }
    14. ?>
    Мне нужно применить такой же код к моему:

    Код (Text):
    1. if ( !function_exists( 'earthpro_branding' ) ) {
    2. function earthpro_branding() {?>
    3. <div class="site-branding">
    4. <div style="width: 25%; height: 100%;"><img src="http://site.ru/wp-content/uploads/2014/08/logo.png" align="left"></img></div>
    5.   [u] <div style="width: 75%; float: right;"><h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></div></h1></div>[/u]
    6.    <div style="width: 75%; float: right;"><p class="site-description"><?php bloginfo( 'description' ); ?></p></div>
    7. </div>
    8. <?php }
    9. }
    Интересует именно, как практически это нужно сделать, чтобы все отображалось корректно. Смысл функции понятен.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    Это форум по PHP, а не по движку WordPress и не по мифам SEO.
    В твоем коде я не вижу попытки найти тег h1 где-либо. Я не понимаю как твой "пример" связан с текстом вопроса.

    В общем случае, должно быть что-то вроде
    Код (PHP):
    1. if (preg_match('~<h1>(.+)</h1>~', $text, $matches)) {
    2.   $title = strip_tags($matches[1]);
    3. } else {
    4.   $title = 'некий текст';
    5. }
    Чтобы посоветовать конкретней, надо знать больше про контекст. Про это я тебе и писал: это твой мир, ты в курсе что там есть, а мы — нет.
    Я хз в каких переменных или функциях добываются нужные тебе данные. Другие участники, видимо, тоже не в курсе.