2013-09-05 4 views
-1

Я играю с некоторым PHP в Wordpress. Я пытаюсь дать каждому новому заголовку сообщения уникальный идентификатор h1, взятый из названия сообщения.Как использовать php-код внутри id div?

Так что если размещая пост под названием «Глава 1», название должно выглядеть

<h1 id="Chapter 1">Chapter 1</h1> 

следующий код не делает волшебство

<h1 id="<?php the_title(); ?>"><?php the_title(); ?></h1> 
+1

А как выглядит 'the_title'? Как выглядит выход этого PHP? Почему вы пытаетесь создать недопустимый HTML (и идентификатор не может содержать пробел)? – Quentin

+3

Возможно, вам стоит добавить 'echo'? – Alex

+0

@ Sanja мои мысли точно. –

ответ

1

Если вы не вторя внутри the_title(); но возвращение вы должны добавить echo

<h1 id="<?php echo get_the_title(); ?>"><?php echo get_the_title(); ?></h1> 

ИЛИ

<h1 id="<?= get_the_title(); ?>"><?= get_the_title(); ?></h1> 

- Изменение the_title() в get_the_title();

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

preg_replace('/[^A-Za-z0-9]/', '', get_the_title()); 
+0

Я бы не использовал заголовок сообщения, потому что он мог содержать символы, которые не разрешены в ID-теге (например, пробелы, кавычки).Вы должны взять - если у вас - идентификатор сообщения или хеш названия или что-то подобное – leuchtdiode

+0

В WordPress 'the_title()' перекликается с строкой. 'get_the_title()' возвращает его. Он использует WordPress. –

+0

Отлично! благодаря! – OnkelK

1

Я предполагаю, что вы используете WordPress, поскольку the_title явно WordPress функции цикла шаблона.

Как указано, here пробелы недопустимы для значения идентификатора. Большинство браузеров будут лишать все после пробела в ID.

Я предложил бы использовать the slug:

echo basename(get_permalink())

0

Определение global $post; в верхней части страницы, чтобы получить текущий post's массиву

<h1 id="<?php echo 'Chapter'.$post->ID; ?>"><?php echo $post->post_title; ?></h1> 

Я предлагаю вам это в выше способом, а не печатать название в id атрибута, так как название может происходить слишком долго, так что ваш идентификатор атрибут будет таким же, как название сообщения, и это плохая практика.

Смежные вопросы