WordPress как на ладони
wordpress jino

the_title() WP 0.71

Выводит на экран заголовок записи. Принято использовать внутри цикла.

Функция используется внутри цикла WordPress. Особенностью является, то что заголовок для "личных" и "защищенных" постов будет помечен соответственно: "Защищен: " (Protected: ) и "Личное: " (Private: )

Работает на основе: get_the_title()
✈ 1 раз = 0.004764с = очень медленно | 50000 раз = 1.99с = быстро PHP 7.1.2, WP 4.7.3

Хуков нет.

Использование

<?php the_title( $before, $after, $echo ); ?>
$before(строка)
Текст/HTML код который нужно разместить перед заголовком.
По умолчанию: пусто
$after(строка)
Текст/HTML код который нужно разместить после заголовка.
По умолчанию: пусто
$echo(логический)
Вывести на экран (true) или возвратить для дальнейшей обработки (false).
По умолчанию: true

Примеры

#1. Выведем на экран заголовок записи в html теге H3:

<?php the_title('<h3>', '</h3>'); ?>

#2. Получим заголовок записи в переменную

Чтобы получить значение для обработки в PHP, укажите третий параметр $echo, как false или 0. Или используйте функцию get_the_title()

$title = the_title('', '', 0);

// или 
$title = get_the_title();

Код the title: wp-includes/post-template.php WP 4.9

<?php
function the_title( $before = '', $after = '', $echo = true ) {
	$title = get_the_title();

	if ( strlen($title) == 0 )
		return;

	$title = $before . $title . $after;

	if ( $echo )
		echo $title;
	else
		return $title;
}

Cвязанные функции

Из метки: title (заголовок)

Еще из раздела: Записи: посты, страницы, ...

Подробнее тут

подробнее тут установить тахограф подольск

www.sputnik-auto.ru

the_title 18 комментариев
Полезные 2 Вопросы 1 Все
  • doxvill

    Добрый день, подскажите плиз как можно ограничить количество символов в заголовке? А то у меня на сайте заголовки длинные в анонсе и не очень красиво. Спасибо.

    Ответить6.1 лет назад #
    • Kama4639

      Вставляем такую функцию обрезки текста (заголовка) в functions.php:

      /* обрезка заголовка */
      function get_short_title($maxchar = 70){
      	$title = get_the_title();
      	if( iconv_strlen($title, 'utf-8') < $maxchar )
      		return $title;
      	$title = iconv_substr( $title, 0, $maxchar, 'utf-8' );
      	$title = preg_replace('@(.*)\s[^\s]*$@s', '\\1 ...', $title); //убираем последнее слово, ибо оно в 99% случаев неполное
      
      	return $title;
      }

      В шаблоне юзаем такой код, где 80 — максимальная длинна:

      <?php echo get_short_title(80); ?>
      1
      Ответить6.1 лет назад #
      • doxvill

        Ух ты, оперативно! Сейчас попробую заюзать, спасибо.

        Ответить6.1 лет назад #
      • Артем

        Подскажите пожалуйста, хочу обрезать заголовок в цикле:

        <table width="700">    
        	<?php if (have_posts()) : ?> 
        
        	<?php $reklama_count = 0; ?>
        	<?php $reklama_count2 = 0; ?>
        
        	<?php while (have_posts()) : the_post(); ?>   
        
        	<?php if ($ii==0) {echo '<tr valign="top" align="center">'; } ?>  
        	<?php $ii++; ?>
        
        	<?php $reklama_count++; ?>
        	<?php $reklama_count2++; ?>
        
        	<td width="175">
          <div class="post-content">
        		  <img src='<?php echo kama_thumb_src ('w=170 &h=130 &q=75'); ?>' alt='<?php the_title (); ?>' title='<?php the_title (); ?>' align="center" />
        		 <p> <a href="<?php the_permalink(); ?>" rel="bookmark" title="Прямая ссылка на <?php the_title_attribute(); ?>"><?php echo get_short_title(80); ?></a></p>
        			</div>   
        	</td>
        
        	<?php if ($ii==4) {echo "</tr>"; $ii=0;  } ?>
        
        	<?php if ($reklama_count==8) {echo ""; $reklama_count=0; }  ?>
        
        	<?php endwhile; ?>    
        	<?php else : ?>    
        	<h2 class="center">Not Found</h2>
        	<p class="center">Sorry, but you are looking for something that isn't here.</p>        
        	<?php endif; ?>    
        	 </table>

        Т.е ваша функция

        <?php echo get_short_title(80); ?>

        вызывает ошибку, что делать?

        Ответить2.9 года назад #
        • Kama4639

          Какую ошибку то? Попробуйте такой код:

          /* обрезка заголовка */
          function get_short_title( $maxchar = 70 ){
          	$title = get_the_title();
          
          	if( mb_strlen( $title ) < $maxchar )
          		return $title;
          
          	$title = mb_substr( $title, 0, $maxchar );
          	$title = preg_replace('@(.*)\s[^\s]*$@s', '\\1 ...', $title); //убираем последнее слово, ибо оно в 99% случаев неполное
          
          	return $title;
          }
          Ответить2.9 года назад #
          • Костя cайт: marvelbitvachempionov.ru

            а можете подсказать, у меня в названии поста написано "Блабла: Название".
            что надо вписать в функции, чтобы он убирал все виесте с двоеточием и пробелом.
            ковырял функцию, но видать, ковырялки не хватает. соль еще в том, что там до двоеточия попадаются разное количество символов...

            Ответить1.3 года назад #
            • Kama4639

              Вот такую функцию используйте вместо the_title()

              /* обрезка заголовка */
              function get_title_strip_colon(){
              	$title = get_the_title();
              
              	$title = preg_replace('~^[^:]+:\s?~', '', $title); // убираем все до :
              
              	return $title;
              }

              Где нужен заголовок без начальных слов до двоеточия вызываешь так:

              <?php echo get_title_strip_colon() ?>
              Ответить1.3 года назад #
  • Дмитрич

    Спасибо за функцию обрезки текста (заголовка) smile Кстати, добавьте эту функцию в новую запись - больше людей увидят!

    1
    Ответить5.1 лет назад #
  • Благодарен

    Спасибо большое, за функцию обрезки текста, очень помогло. smile clapping

    Ответить4.3 года назад #
  • Добрый день.
    А можно как-то вставить перенос строки в заголовок поста?
    Шорткодом, например, или еще как-то?
    Проблема в том, что WP удаляет теги из заголовков((
    Если в the_content есть html редактор, то как быть в the_title? Как вставить в заголовок? Спасибо!

    Ответить1.4 года назад #
  • Бахромжон

    Добрый день!
    Почему у меня the_title() работает и вне цикла WordPress? Возвращает заголовок текущей записи. Или WordPress сам переопределяет глобальную переменную $post без каких-либо the_post() ?

    Ответить1.2 года назад #
  • Выводит на экран или возвращает заголовок записи

    У меня только выводит...

    Ответить1.1 года назад #
  • Иван

    Приветствую, Кама. Скажи, можно ли сделать так, чтобы в заголовок страницы и, соответственно, в <title></title> страницы просмотра записи вставлялось значение/значения произвольных полей?

    Ответитьгод назад #
  • DmitryS cайт: www.net4me.net
    /* обрезка заголовков */
    function get_short_title( $title ){
    	$maxchar=50;
    	if( mb_strlen( $title ) < $maxchar )
    		return $title;
    	$title = mb_substr( $title, 0, $maxchar );
    	$title = preg_replace('@(.*)\s[^\s]*$@s', '\\1 ...', $title); //убираем последнее слово, ибо оно в 99% случаев неполное
    	return $title;
    }
    add_filter( 'the_title', 'get_short_title');
    1
    Ответить3 месяца назад #

Здравствуйте, !

Ваш комментарий