Я пытаюсь сократить слово WordPress до первого слова. Для страницы с именем «John Doe» я хочу иметь подзаголовок где-то на странице, где говорится «О Джоне», поэтому я хочу просто получить первое слово из названия.
Есть ли способ сделать это с помощью PHP?
Благодаря!
ОБНОВИТЬ:
Спасибо за ваши ответы! Я попробовал следующий код, но он, похоже, не работает. Он по-прежнему перекликается с полным названием. Какие-либо предложения?
<?php $title = the_title(); $names = explode(' ', $title); echo $names[0]; ?>
это очень просто:
<?php $title = get_the_title(); // This must be!, because this is the return - the_title would be echo $title_array = explode(' ', $title); $first_word = $title_array[0]; echo $first_word; ?>
или
<?php $title = current(explode(' ', get_the_title())); echo $title; ?>
непроверенный, но должен работать 🙂
Надеюсь, это полезно 🙂
$first_word = current(explode(' ', $title ));
или в файле шаблона
<?php echo current(explode(' ', $title )) ?>
взорваться по пространству и получить первый элемент в результирующем массиве
list($first_word) = explode(' ',$mystring);
Вы можете сделать так:
$words = explode(' ', $the_title_here); echo $words[0];
Я думаю, вы, вероятно, сталкиваетесь с некоторыми особенностями WordPress здесь. the_title () по умолчанию просто распечатывает заголовок и ничего не возвращает. Чтобы заставить его вернуть строку заголовка вместо ее печати, вы должны установить третий параметр the_title()
в значение true.
//fetch the title string into a variable $title = the_title('','',true);
После этого вы можете избавиться от первого слова и отбросить его вручную. Если вы используете PHP 5.3, вы можете выполнить это в одной строке с помощью strstr () :
echo strstr($title," ",true);
Если у вас PHP <5.3, вы можете использовать explode()
:
$parts = explode(' ',$title); echo $parts[0];
Я бы рекомендовал полностью исключить этот синтаксический анализ строк и использовать более общий подход для определения вторичного заголовка для вашей страницы.
Вы должны использовать WordPress Post Meta для определения настраиваемого мета-поля с именем типа «субтитры», а затем вызывать это поле в своем шаблоне. Таким образом, вы можете решать поэтапно, что вы хотите, чтобы субтитры были, а не быть привязаны к конкретной связи между заголовком и субтитрами. Это, вероятно, не сделает вашу жизнь более сложной, и это значительно упростит ее.
Вы добавляете метатег сообщения на страницу или сообщение, используя раздел «Пользовательские поля» в нижней части экрана редактирования сообщений. Вы показываете эти поля в своей теме следующим образом:
<?php echo get_post_meta($post->ID, $meta_key, 1);?>
Очевидно, вы, вероятно, лучше проверили бы его, прежде чем дать вам что-то вроде этого:
<?php if ( $subtitle = get_post_meta($post->ID, $meta_key, 1) ) echo "<h3>$subtitle</h3>"; ?>
Подробнее о кодексе.
Существует строковая функция ( strtok ), которая может использоваться для разделения строки на более мелкие строки ( токены ) на основе некоторых разделителей. Для целей этого потока первое слово (определенное как что-либо перед первым пространственным символом) Test me more
может быть получено путем токенизации строки на символе пробела.
<?php $value = "Test me more"; echo strtok($value, " "); // Test ?>
Дополнительные сведения и примеры см. На странице руководства PHP strtok .