Помогите, пожалуйста, блондинке. Буду оочень благодарна. Нужно сделать динамический h1 для шапки. Когда в записи присутствует заголовок h1, то в хэдере он меняется на простой текст. А на страницах с категориями, на главной и пр. страницах, где нет записи, там h1 присутствует в названии сайта. Пробовала вот этот код из примера: Код (Text): <?php if (is_single()) { ?> <span class=”blog_name”><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a> </span> <span class=”blog_descr”><?php bloginfo('description'); ?></span> <?php } else { ?> <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1> <h2><?php bloginfo('description'); ?></h2> <?php } Но у меня ситуация немного другая: Код (Text): if ( !function_exists( 'earthpro_branding' ) ) { function earthpro_branding() {?> <div class="site-branding"> <div style="width: 25%; height: 100%;"><img src="http://site.ru/wp-content/uploads/2014/08/logo.png" align="left"></img></div> <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> <div style="width: 75%; float: right;"><p class="site-description"><?php bloginfo( 'description' ); ?></p></div> </div> <?php } } Подскажите, пожалуйста, как реализовать функцию в этом случае.
Вроде что-то спрашиваешь, а что непонятно. Все эти "в названии сайта", "страницы с категориями" и т.п. это всё из твоего мира, нам сии понятия неведомы. Программа это переложение четкой инструкции что надо сделать на синтаксис языка программирования. Тебе объяснить что такое if-else или в чем твоя проблема?
Тогда опишу все дословно. Никак не думала, что такая тема - это что-то "из моего мира". Тут вопросы потому и называются "от блондинок", что не предусматривается такое знание php, как у вас. Требуется реализовать на движке Wordpress динамический заголовок h1 в шапке сайта. Как известно, он должен быть единожды использован на странице. Но на главной, где выведены списки записей (а также и в категориях, где они тоже выведены), заголовок h1 повторяется несколько раз, так как присутствует в каждой записи. Нужно реализовать код, как в первом примере, чтобы, когда h1 не присутствует в статье (то есть открыта главная страница или категории), он выводился в заголовке сайта. А если h1 присутствует в заголовке статьи (открыта конкретная статья), то заголовок сайта должен быть в теге div, span или p. Пробовала сделать, как в примере, но ничего не вышло, так как плохо разбираюсь в коде. Поэтому и прошу помощи у знающих людей. Если все еще непонятно, о чем я, посмотрите на код: Было: Код (Text): <?php $get_logo_image = get_theme_option('logo'); if ($get_logo_image != '') { ?> <a href="<?php bloginfo('url'); ?>"><img src="<?php echo $get_logo_image; ?>" alt="<?php bloginfo('name'); ?>" title="<?php bloginfo('name'); ?>" class="logoimg" /></a> <?php } else { ?> <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1> <h2><?php bloginfo('description'); ?></h2> <?php } ?> Стало: Код (Text): <?php $get_logo_image = get_theme_option('logo'); if($get_logo_image != '') { ?> <a href="<?php bloginfo('url'); ?>"><img src="<?php echo $get_logo_image; ?>" alt="<?php bloginfo('name'); ?>" title="<?php bloginfo('name'); ?>" class="logoimg" /></a> <?php } else { ?> <?php if (is_single()) { ?> <span class=”blog_name”><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a> </span> <span class=”blog_descr”><?php bloginfo('description'); ?></span> <?php } else { ?> <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1> <h2><?php bloginfo('description'); ?></h2> <?php } } ?> Мне нужно применить такой же код к моему: Код (Text): if ( !function_exists( 'earthpro_branding' ) ) { function earthpro_branding() {?> <div class="site-branding"> <div style="width: 25%; height: 100%;"><img src="http://site.ru/wp-content/uploads/2014/08/logo.png" align="left"></img></div> [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] <div style="width: 75%; float: right;"><p class="site-description"><?php bloginfo( 'description' ); ?></p></div> </div> <?php } } Интересует именно, как практически это нужно сделать, чтобы все отображалось корректно. Смысл функции понятен.
Это форум по PHP, а не по движку WordPress и не по мифам SEO. В твоем коде я не вижу попытки найти тег h1 где-либо. Я не понимаю как твой "пример" связан с текстом вопроса. В общем случае, должно быть что-то вроде Код (PHP): if (preg_match('~<h1>(.+)</h1>~', $text, $matches)) { $title = strip_tags($matches[1]); } else { $title = 'некий текст'; } Чтобы посоветовать конкретней, надо знать больше про контекст. Про это я тебе и писал: это твой мир, ты в курсе что там есть, а мы — нет. Я хз в каких переменных или функциях добываются нужные тебе данные. Другие участники, видимо, тоже не в курсе.