Intereting Posts
Как вызвать поисковый запрос в functions.php из search.php & searchfrom.php в wordpress? страниц списка wp с использованием значения мета-поля что означает «публиковать» статус в WooCoomerce? Как сортировать кратные страницы? Помощь в поиске нескольких выпадающих меток термины таксономии не заполняются. Почему мои стили применяются к области администрирования? superfish.js кажется, что он не работает должным образом после wordpress upgradearde до 4.6.1 Есть ли файлы .MP3 с расширением большой буквы, разрешенными в коротком коде? Удаление URL родительской страницы при сохранении навигационной целостности внешние страницы WordPress с использованием wp-blog-header Как добавить уникальный класс изображения в WordPress Почему мой сайт WordPress не отображает текст urdu полностью, ища какую-либо вещь в своих барах поиска? WordPress functions.php – Выполнить плагин для конкретного пользователя онлайн Получить результаты из основного wp_query

Shortcode с атрибутом пользовательского контента?

Я создаю короткий код для клиентского сайта, который должен отображать изображение и высказывание (главным образом в нижней части страницы, но в основном там, где клиент хочет вставить указанное изображение / высказывание). Изображение останется прежним, и будет «стандартное высказывание», но клиент хотел бы изменить высказывание на основе каждой страницы.

У меня есть следующий рабочий код, который отлично работает при использовании короткого кода [call_to_action] :

<?php function shortcode_call_to_action() { $stylesheetdir = get_bloginfo('stylesheet_directory'); return '<div id="call_to_action"> <img src="' . $stylesheetdir . '/images/call_to_action.jpg" /> <p>Lorem ipsum dolor sit amet, jus ludus dignissim delenit incassum adipiscing, letalis ymo loquor populus sed saepius. Quod regula vulputate eum nulla, feugait foras ex ideo. </p>' ; } add_shortcode('call_to_action', 'shortcode_call_to_action'); ?> 

То, что я хотел бы сделать, каким-то образом добавляет туда атрибут, так что клиент может изменить / перезаписать текст call_to_action, изменив его прямо в коротком коде:

[call_to_action] Это будет новый перезаписанный текст, который будет отображаться, если он вставлен здесь. [/ call_to_action]

Я также хотел бы, чтобы он уважал любые теги html (абзац и / или break), которые могут быть использованы. Желая перезаписать мою предыдущую функцию, если это необходимо. Я php noob, поэтому я, похоже, не могу это понять. Любая помощь приветствуется. Спасибо SE!

Solutions Collecting From Web of "Shortcode с атрибутом пользовательского контента?"

Второй параметр вашей функции shortcode – это содержимое. Поэтому перепишите функцию:

 function shortcode_call_to_action( $attributes = NULL, $content = '' ) { $stylesheetdir = get_bloginfo('stylesheet_directory'); if ( '' === $content ) { // use a default text if there is no content $content = 'default text'; } return "<div id='call_to_action'> <img src='$stylesheetdir/images/call_to_action.jpg' alt='' /> <p>$content</p>"; } 

Если пользователь пишет …

 [call_to_action]Custom text[/call_to_action] 

… параметр $content в вашей функции будет установлен на этот текст.

Для получения дополнительной информации см. API Shortcode .