Intereting Posts
Показать кнопки общего доступа и комментарии к Facebook В диалоговом окне «Модифицированный лайтбокс» (наложение изображений)? Как проверить, зарегистрирован ли пользователь (не текущий пользователь)? Синтаксис dbDelta ALTER TABLE? Проблема с получением ссылки по умолчанию типа post, как и пользовательские типы orther Гравитация формирует несколько сообщений, сгенерированных одной формой / wp-admin / не работает, но / admin / does Категории list loop – добавить разделитель каждый год is_home () возвращает true, пока он не должен дезинфекция целочисленного ввода для update_post_meta Есть ли способ предотвратить изменение Редактором моего HTML Ошибка тестовой единицы SSL-сертификат для хоста не может быть проверен Я не прихожу, чтобы делать order_by заголовок, когда у меня есть conditionnal год в запросе Неправильное перенаправление после комментирования пользовательского типа Изменен субсайт к собственному домену триггер 302 перенаправления для всех ссылок на страницы

Использовать значение короткого кода на выходе

Я написал этот shortcode, чтобы взять имя файла, которое я указываю, и выводить его как изображение с тегами заголовка и alt:

function cwc_pkmn($atts) { extract(shortcode_atts(array( "name" => 'http://', ), $atts)); return '<img src="/path/to/file/'.$name.'.png" alt="'.$name.'" title="'.$name.'" />'; } add_shortcode("pkmn", "cwc_pkmn"); 

Все мои имена файлов имеют строчные буквы с «-» между словами. Возможно ли, чтобы выход заглавил каждую букву, следуя за – и заменив пробелы? Итак, прямо сейчас, когда я делаю короткий код выше:

 [pkmn name="mr.-deeds"] 

Я получаю это как вывод:

 <img src="/path/to/file/mr.-deeds.png" alt="mr.-deeds" title="mr.-deeds"> 

Но возможно ли, чтобы выход делал это вместо заголовка и тегов alt?

 <img src="/path/to/file/mr.-deeds.png" alt="Mr. Deeds" title="Mr. Deeds"> 

Спасибо огромное!

Solutions Collecting From Web of "Использовать значение короткого кода на выходе"

Попробуйте это. , ,

 function cwc_pkmn( $atts = array(), $content = '' ) { // ------------------------ // Settings: $path = '/path/to/file/'; $ext = 'png'; // ------------------------ // Shortcode input: $atts = shortcode_atts( array( 'name' => '' ), $atts, 'pkmn_shortcode' ); // Sanitize input: $name = esc_attr( $atts['name'] ); // Init: $words_ucfirst = array(); // Capitalize the first letter in each word: $words = explode( '-', $name ); foreach( $words as $word ) { $words_ucfirst[] = ucfirst( $word ); } $name_mod = esc_attr( join( ' ', $words_ucfirst ) ); return sprintf( '<img src="%s%s.%s" alt="%s" title="%s" />', $path, $name, $ext, $name_mod, $name_mod ); } add_shortcode( 'pkmn', 'cwc_pkmn' ); 

Для этого вы можете использовать preg_replace_callback . Он использует регулярные выражения для замены части строки. Использование регулярного выражения «- [az]» соответствует тире, за которым следует строчная буква. Добавление круглых скобок вокруг [az] позволяет использовать его в функции замены ( function( $matches ) ) позволяет использовать ее в $matches . Возвращаемое значение функции используется для замены согласованной строки. Таким образом, мы заменяем – [az] на пробел, за которым следует верхняя буква, которая была в нижнем регистре раньше.

 $title = preg_replace_callback( '/\-([az])/', function( $matches ) { return ' ' . strtoupper( $matches[1] ); }, $name );