Intereting Posts
Как создать пользовательское поле для выбора изображения? Попытка исправления повторного ввода формы с помощью PRG (Ошибка получения: невозможно изменить информацию заголовка – уже отправленные заголовки) Почему минимальная защита защищена? Как отредактировать ссылку для комментария Как кэшировать пользовательские страницы с помощью W3 Total Cache? вырвать пользовательский html Как сделать wp_query с двумя полями acf, сортируя по одному из них Построение индексной страницы из настраиваемых полей Загрузите wp_editor через ajax Правило ReWrite для файлов ранее автономного блога переместилось в сеть используйте query_posts для возврата сообщения ИЛИ страницы с идентификатором Как можно изменить размеры изображений в WordPress без добавления какого-либо сжатия или изменения цветового профиля изображений? Подтверждение перед удалением параметров плагина с помощью uninstall.php Моя связующая форма URL-адреса в html для PHP не работает Запрос на должности в 2 таксономиях

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 .