Заголовок h2 и h1

Я хочу сделать структуру чтобы все заголовки в перечне постов были h2, а полная новость – h1. Как правильно выводить новости при такой задаче и в каких файлах править заголовки? Сейчас добавляю новости через записи и потом их обрезаю тегом more, чтобы получались как анонсы и потом можно было перейти к полной новости. Но так получается и в перечне постов заголовок h1 и в полной новости – h1, а мне нужно чтобы в перечне постов был h2. В DLE есть шаблон краткой и полной новости, а как в WordPress? Какой файл править чтобы в анонсах h2 был заголовок?

Вам нужно задать заголовки в двух файлах: index.php (сдесь вывод анонсов), single.php (вывод полной статьи)

Вот мой index.php:

<?php get_header(); ?>
<div class="art-content-layout">
    <div class="art-content-layout-row">
        <div class="art-layout-cell art-content">
            <?php get_sidebar('top'); ?>
            <?php 
                if(have_posts()) {
                
                    /* Display navigation to next/previous pages when applicable */
                    if ( theme_get_option('theme_' . (theme_is_home() ? 'home_' : '') . 'top_posts_navigation' ) ) {
                        theme_page_navigation();
                    }
                    
                    /* Start the Loop */ 
                    while (have_posts()) {
                        the_post();
                        get_template_part('content', get_post_format());
                    }
                    
                    /* Display navigation to next/previous pages when applicable */
                    if (theme_get_option('theme_bottom_posts_navigation')) {
                         theme_page_navigation();
                    }
                
                } else {
                
                     theme_404_content();
                     
                } 
            ?>
            <?php get_sidebar('bottom'); ?>
          <div class="cleared"></div>
        </div>
        <div class="art-layout-cell art-sidebar1">
          <?php get_sidebar('default'); ?>
          <div class="cleared"></div>
        </div>
        <div class="art-layout-cell art-sidebar2">
          <?php get_sidebar('secondary'); ?>
          <div class="cleared"></div>
        </div>
    </div>
</div>
<div class="cleared"></div>
<?php get_footer(); ?>

Где же тут вывод заголовка?

Вроде нашел в content.php:

<?php
    global $post;
    theme_post_wrapper(
        array(
                'id' => theme_get_post_id(), 
                'class' => theme_get_post_class(),
                'thumbnail' => theme_get_post_thumbnail(),
                'title' => '<a href="' . get_permalink( $post->ID ) . '" rel="bookmark" title="' . get_the_title() . '">' . get_the_title() . '</a>', 
                'before' => theme_get_metadata_icons( 'date,author,edit', 'header' ),
                'content' => theme_get_excerpt(), 
                'after' => theme_get_metadata_icons( 'category,tag,comments', 'footer' )
        )
    );
?>

Как в php прописать title чтобы выводился в тегах <h2>? Как ни напишу – ругается…. 🙁

По идее, если последний код – это то что Вам нужно, то попробуйте заменить строку:
‘title’ => ‘<a href="’ . get_permalink( $post->ID ) . ‘" rel="bookmark" title="’ . get_the_title() . ‘">’ . get_the_title() . ‘</a>’,
на:
‘title’ => ‘<h2><a href="’ . get_permalink( $post->ID ) . ‘" rel="bookmark" title="’ . get_the_title() . ‘">’ . get_the_title() . ‘</a></h2>’,

Поменял строку. Заголовок в анонсах стал в тегах h2, но в самом коде перед заголовком выводится еще и конструкция <h1 class="art-postheader"></h1>, а потом уже идет <h2></h2>.

Получается вот так в коде:

<div class="art-post-inner art-article">
<h1 class="art-postheader"></h1> - пустая конструкция
<h2>Тут заголовок</h2>

Теперь вопрос как удалить <h1 class="art-postheader"></h1> из анонса новости?

В этой конструкции выводится заголовок полной новости. Не пойму почему она вылазит и при выводе заголовка в анонсе….

Расположена она в коде /themes/internal_medicine_wp/library в файле wrappers.php.
Вот часть кода из него для вывода заголовка полной новости:

  <div class="art-post-inner art-article">
                <?php
                  
                    if (!theme_is_empty_html($title)){
                        echo '<h1 class="art-postheader">'.$title.'</h1>';
                    }
                     echo $before;?>
                    <div class="art-postcontent">
                        <!-- article-content -->

<?php
                    if (!theme_is_empty_html($title)){
                       echo $thumbnail;
                    }
                  ;?>

                        <?php echo $content; ?>
                        <!-- /article-content -->
                    </div>
                    <div class="cleared"></div>

Как же мне удалить <h1 class="art-postheader"></h1> из анонса новости?

Хорошо, а если отменить изменения, сделанные по моему совету постом выше, а в Вашем последнем коде h1 заменить на h2. Что тогда остается в анонсах?

Тогда h2 получается и в анонсах и в полной новости. Как в полной новости теперь сделать чтобы заголовок в h1 был?

Строка из Вашего последнего листинга:

 echo '<h1 class="art-postheader">'.$title.'</h1>';

Попробуйте заменить на:

if (is_single()) {
     echo '<h1 class="art-postheader">'.$title.'</h1>';
} else {
     echo '<h2 class="art-postheader">'.$title.'</h2>';
}

Спасибо!!! Вопрос решен :))

Anonymous
Отправить
Ответ на: