Поместить заголовок страницы в заголовок?
-
-
Если на ваш вопрос был дан ответ,отметьте принятый ответ как таковой.Спасибо.If your question has been answered please mark the accepted answer as such. Thank you.
- 0
- 2015-02-16
- tacudtap
-
3 ответ
- голосов
-
- 2015-02-15
Если вам нужен только заголовок,вы можете легко запросить его вне цикла.
Попробуйте вызвать
the_title()
в заголовке.Должно работатьНо вы должны знать,что если вы не поставите условие,каждая страница вашего веб-сайта будет отображать свой заголовок в разделе заголовка.
EDIT: вызываемая функция - это
get_the_title($post->ID)
,посколькуthe_title()
не позволяет указать идентификатор сообщения в качестве аргумента..Вы можете проверить в Wordpress Codex функцию,позволяющую запрашивать информацию из вашего сообщения вне цикла.If you only need the title you can request it outside the loop easily.
Try and call
the_title()
in your header. It should workBut you have to be aware that if you don't put a condition, each page of your website will display its title in the header section.
EDIT: the function to call is
get_the_title($post->ID)
sincethe_title()
doesn't allow you to specify the post id as an argument. You can check on the Wordpress Codex for function allowing you to query information from your post outside the loop.-
the_title предназначен только для использования в цикле.Чтобы получить заголовок сообщения вне цикла,используйтеget_the_title ($post-> ID)the_title is intended to only be used within the loop. To get the title of a post outside of the loop use get_the_title( $post->ID )
- 0
- 2015-02-15
- Rachel Baker
-
Да извините,я перепутал их.Yes sorry I confused the two.
- 0
- 2015-02-15
- mathieuhays
-
Фактически,я удвоил проверку,иthe_title () работает вне цикла.В случае шаблонов архива печатается заголовок первой статьи.В случае single.php иpage.php будет напечатан заголовок страницы.Может быть полезно в некоторых случаях,но не рекомендуется в документацииActually, I doubled check and `the_title()` do work outside the loop. In case of the archive templates it will print the title of first article. In case of `single.php` and `page.php` it will print the page title. Can be useful in some cases but not recommended by the documentation
- 0
- 2015-02-15
- mathieuhays
-
Очень интересно!Как я уже сказал,я новичок в WP,поэтому для меня ничего не очевидно ... (Включая тот факт,что,по-видимому,я не могу нажать Enter для перехода на новую строку в комментарии - думаю,я опубликую отдельныйзапись ниже.Very interesting! As I said, I'm new to WP, so _nothing_ is obvious to me... (Including the fact that, apparently, I can't hit enter for a newline within a comment --- guess I'll post a separate entry below.
- 0
- 2015-02-15
- user781470
-
- 2015-02-15
Вам нужно использовать wp_title ();
Если вы пытаетесь использовать заголовок сообщения так:
<head> <title> post title here </title> </head>
Вам нужно будет добавить wp_title ('',true,'');
<head> <title> <?php wp_title('', true,''); ?> </title> </head>
Например: если имя вашего сообщения было Hello World,Hello World теперь будет отображаться на вкладке.
You need to use wp_title();
If you're trying to use the post title like so:
<head> <title> post title here </title> </head>
You would need to add the wp_title(' ', true , ' ');
<head> <title> <?php wp_title('', true,''); ?> </title> </head>
For example: If your post name was Hello World, Hello World would now show up in the tab.
-
Вопросы,основанные только на ссылках,не подходят.Пожалуйста,объясните,что делать и почему отвечает на вопрос.И,если есть возможность,выложите пример.Link-only based questions as not good. Please, explain what to do and why it answers the question. And, if possible, post an example.
- 0
- 2015-02-15
- cybmeta
-
Благодарю.Вы ответили первым,но мне пришлось принять другой ответ,поскольку wp_title для меня не сработает.Тем не менее,полезно знать о wp_title.Thanks. You answered first but I had to accept the other response since wp_title wouldn't work for me. Still, good to know about wp_title.
- 0
- 2015-02-16
- user781470
-
- 2018-11-15
Хотя вышеупомянутые методы пока работают,основные разработчики WordPress рекомендует следующее:
<цитата>Начиная с 4.1 и Twenty Fifteen,рекомендуемый способ для тем отображать заголовки можно,добавив поддержку темы следующим образом: - Константин Обенланд
Вы можете добавить эту строку в файлfunctions.php вашей темы после after_setup_theme . или
с той же страницы,
<цитата>Начиная с 4.1 и Twenty Fifteen,рекомендуемый способ для тем отображать заголовки можно путем добавления поддержки темы следующим образом:
function theme_slug_setup() { add_theme_support( 'title-tag' ); } add_action( 'after_setup_theme', 'theme_slug_setup' );
Поддержка должна быть добавлена в действие after_setup_theme илиinit,но не позже этого. Никаких дальнейших аргументов он не принимает.
Это позволяет WordPress выбирать заголовок страницы в заголовке без использования жестко заданных тегов в файле header.php.
ваш заголовок будет отображаться в следующем формате.
<▪
Page Title - Site Title
While above mentioned methods are working for the moment, WordPress core developers recommends as follows:
Starting with 4.1 and Twenty Fifteen, the recommended way for themes to display titles is by adding theme support like this: -Konstantin Obenland
You can either add this line in your theme's functions.php file after the after_setup_theme. or
from same page,
Starting with 4.1 and Twenty Fifteen, the recommended way for themes to display titles is by adding theme support like this:
function theme_slug_setup() { add_theme_support( 'title-tag' ); } add_action( 'after_setup_theme', 'theme_slug_setup' );
Support should be added on the after_setup_theme or init action, but no later than that. It does not accept any further arguments.
What this do is, let WordPress choose the page title in header, without using hardcoded tags in header.php file.
your title will be displays as following format.
Page Title - Site Title
Обычно в WordPress заголовок страницы отображается в области содержимого. Я бы хотел,чтобы заголовок страницы отображался в области заголовка. Похоже,что для этого мне пришлось бы удалить его из текущего местоположения в content-page.php и поместить в header.php. Но content-page.php вызывается изpage.php,который вызывает страницу содержимого из цикла while (
while ( have_posts() ) : the_post(); ...
) - поэтому Думаю,мне придется переместить или скопировать это в заголовок. Кажется,много проблем.Было бы разумнее переместить часть html-заголовка в содержимое страницы,чтобы мне не приходилось запускать цикл while более одного раза?
(В качестве средства обучения я воссоздаю существующий html-сайт с помощью WordPress,используя начальную тему _s.)
--- РЕДАКТИРОВАТЬ ---
Спасибо за ответы. Очень полезно. Вот результаты некоторых тестов,основанных на ваших ответах. Учитывая следующий код в заголовке (вне цикла):
При просмотре со страницы "О нас" я получаю:
При просмотре с моей домашней страницы я получаю:
И при просмотре сообщения "Hello World" я получаю:
Заключение: я могу использоватьthe_title () или single_post_title () (wp_title возвращает больше текста,чем я хочу). И я могу протестироватьis_page (...),чтобы отображать конкретное имя страницы,когда я просматриваю сообщение.
Спасибо!