Как правильно создать шорткод?
-
Всем привет, создаю свой первый wordpress плагин. И возникает ошибка с шорткодом. У меня есть таблица, где выводится имя блока и название шорткода. И также есть html код, который хранится в mySQL.
https://i.stack.imgur.com/GEqkt.png
https://i.stack.imgur.com/rqVp7.png
Когда я создаю функцию шорткода, я передаю в нее третий параметр $name — имя шорткода и обратно возвращаю html текст из базы данных.global $wpdb; $table_name = "{$wpdb->prefix}blocks"; $resultName = $wpdb->get_col("SELECT <code>NAME</code> FROM $table_name"); $resultHtmltext = $wpdb->get_col("SELECT <code>HTMLTEXT</code> FROM $table_name"); foreach ($resultName as $nameValue) { $name = $nameValue; } foreach ($resultHtmltext as $htmltextValue) { $htmltext = $htmltextValue; } function wpblocks_block_shortcode($atts, $content, $name) { global $htmltext; return $htmltext; } add_shortcode($name, 'wpblocks_block_shortcode');
и когда я ввожу этот шорткод в записи [div-red], получаю следующее:
https://i.stack.imgur.com/rG0H4.pngПосле создаю следующий блок – шортокод работает, но уже перезаписывает предыдущий и предыдущий не работает а выводит просто [div-red]. Я понимаю почему да, потому что я принимаю только первый элемент из того массива. И тут возникает вопрос, как сделать так, чтобы имя шорткода в аргументе было любое, которое есть в данном массиве и соответственно я так же мог бы взять htmltext из БД таблицы где name = $name
- Тема «Как правильно создать шорткод?» закрыта для новых ответов.