Wordpress - плагин для включения фрагмента кода в отдельные части макета
Попытка найти некоторое подтверждение о том, как это возможно в пределах плагина без успеха:
Цель состоит в том, чтобы пользователь мог использовать плагин, который бы вставлял предварительно определенный фрагмент кода в выбранную часть макета. Типичное использование:
Фрагмент "code" будет похож на набор ссылок или изображение. Чтобы они могли выбирать из раскрывающегося меню, где оно должно появляться на своем сайте без редактирования кода темы.
Я полагаю, было бы также полезно предоставить тег, который разработчики могут вставить где-нибудь в свой шаблон темы, чтобы быть включенным где-то более сложным, что-то вроде.
Ответы
Ответ 1
В Wordpress вы можете изменить выход системы в определенных местах, используя крючки действий и фильтры. Например:
function putSomeTextInTheFooter() {
echo '<p>This text is inserted at the bottom</p>';
}
add_action( 'wp_footer', 'putSomeTextInTheFooter' );
Этот PHP-код изменит нижний колонтитул, добавив пользовательское действие [function], которое Wordpress будет запускать прямо в событии под названием "wp_footer", что самоочевидно. Есть крючки и фильтры для всех видов вещей. Wordpress имеет богатый набор функций для изменения практически всего. Этот вид кода может быть либо в теме, либо в плагине. Ознакомьтесь с кодом здесь: https://codex.wordpress.org/Plugin_API/Action_Reference
Ответ 2
Напишите функцию shortcode в функции function.php
<?php
function test()
{
echo "I am test ";
}
add_shortcode("test_shortcode","test"); ?>
Теперь вы можете добавить [test_shortcode] любое место в вашем редакторе, чтобы получить результат там
Или в шаблоне вы можете вызвать его с помощью
<?php echo do_shortcode([test_shortcode]); ?>
Надеюсь, это поможет вам решить вашу проблему.
Ответ 3
Вы ищете функцию register_sidebar.
Вы можете создать именованную область боковой панели с помощью этой функции и поместить в нее любые виджеты из Apperarence → Widgets (в wp-admin). В ваших файлах тем вы можете называть dynamic_sidebar на нужном месте, и все виджеты будут отображаться в этом месте.