n-wp.ru — блог о WordPress

Как вставить ссылку в заголовок поста

Некоторые движки умеют вставлять ссылку в заголовок поста. Например, часто на Хабрахабре мелькают статьи, указывающие своим заголовком на другие сайты и страницы. Можно ли сделать подобное в WordPress? Можно, но для этого нужно будет провести небольшую работу над используемой вами темой.

Реализовать вставку ссылки в заголовок поста можно с помощью произвольных полей. В посте создайте произвольное поле Post_Title, и вставьте в него код HTML-ссылки:

Ничего сложного, не правда ли? А вот теперь самое главное — нужно, чтобы содержимое этого произвольного поля подставлялось в блоге вместо названия поста. Для этого открывает файлы с темой, которую вы используете, и находим те места, где выводится заголовок поста. Обычно это делается с помощью стандартной функции the_title. Например, вот так:

Вот именно эту строчку нужно поменять на вот такой код:

Этот код проверяет, заполнено ли произвольное поле Post_Title. Если да, то в качестве заголовка используется содержимое этого произвольного поля. А если нет, то в качестве заголовка используется стандартное название поста.

9 комментариев

  • Здравствуйте, Tiaurus!
    У меня в блоге http://dimastrahov.com/blog не отображаются заголовки постов. Так было с самого начала в теме. Не могли бы вы подсказать, что подправить, чтобы заголовки отображались и при нажатии на них можно было бы открыть сам пост, как это и должно быть?
    Заранее спасибо!

    • Вы используете платную тему Photocrati Emulsion, которая стоит $59. Я не могу скачать ее, чтобы посмотреть, что нужно вам изменить. Но могу предположить, что в файле index.php в цикле вывода записей нет вызова заголовка поста. Чтобы он появился, нужно добавить после строчки while (have_posts()) : the_post() примерно такой код:
      <a title="<?php the_title(); ?>" href="<?php the_permalink() ?>"><?php the_title(); ?></a>
      Точнее можно будет сказать, если увижу файлы темы вашего блога.

    • Попробуйте вставить строчку
      <a title="<?php the_title(); ?>" href="<?php the_permalink() ?>"><?php the_title(); ?></a>
      сразу перез строчкой