Не работают шорткоды WordPress? Как вставить PHP-код в пост?
Последние версии WordPress и WooCommerce (на момент написания статьи – это WordPress 4.0. и WooCommerce 2.2.4 ) совместно работают некорректно при попытке добавить шорткод (shortcode) в новый пост или страницу. Срабатывают лишь базовые шорткоды, например,
1 | [woocommerce_cart] |
для страницы «Корзины», которую WooCommerce и так автоматически формирует при установке. А вот добавить, например, шорткод для вывода 12-ти товаров по 4-ом колонкам
1 | [recent_products per_page="12" columns="4"] |
может и не выйти. Это также зависит от установленной темы.
Вставить данный шорткода в виде классического PHP
1 | <?php echo do_shortcode('[recent_products per_page="12" columns="4"]'); ?> |
в новую страницу или пост товара в режиме «текст» мы можем, но он не заработает – WordPress не выполнит его. Вы можете убедиться в этом, просмотрев исходящий код созданной страницы.
Решений этой проблемы есть минимум два:
1) Подробнее читайте на этом ресурсе: http://wp-kama.ru/id_87/ispolnyaemyiy-php-kod-v-zapisyah-wordpress.html
2) Устанавливаем плагин Inline PHP (https://wordpress.org/plugins/inline-php)
В режиме «текст» добавляем нужный нам шорткод в пост или страницу в следующем формате:
1 | [exec] echo do_shortcode('[recent_products per_page="12" columns="4"]'); [/exec] |
Прописывать <?php и ?> не нужно – для этого служат [exec] и [/exec]
Итак, конструкция следующая:
1 | [exec] echo do_shortcode('[ваш шорткод]'); [/exec] |
О безопасности: если кто-либо получит доступ к редактированию статей, постов, то сможет запустить на Вашем ресурсе, что угодно!
Также следует отметить очень удобный плагин для интеграции шорткодов в посты, страницы, виджеты – WooCommerce Shortcodes:
https://wordpress.org/plugins/woocommerce-shortcodes/screenshots/
У нас Вы можете заказать SEO-оптимизированный Интернет-магазин на базе WordPress + WooCommerce по очень приятной цене!