Как отобразить произвольный виджет в любом месте
У меня есть пользовательский виджет для рекламы, который помогает показывать рекламу на боковой панели, но я пытаюсь отобразить его под каждой отдельной записью или на главной странице рядом со слайдером.
<?php the_widget( 'AdWidget_300' ); ?>
Как я могу вызвать пользовательский виджет в любом месте, где захочу?

Добавьте область виджетов в ваш шаблон темы single.php
, front-page.php
, home.php
или любой другой... Затем в админ-панели перейдите в раздел Внешний вид > Виджеты и переместите виджет в только что созданную область.

теперь в голову пришла другая проблема: возможно ли отображать 5 рекламных блоков с помощью одного виджета, но для разных мест размещения? или мне нужно использовать один виджет для одного рекламного блока. В итоге мне придется создать 5 виджетов для моей рекламы

Мы не можем отображать пользовательский виджет напрямую в контенте или любом другом месте. Функция the_widget()
отображает только встроенные виджеты.
Однако если вам всё же нужно отобразить пользовательский виджет, то вам необходимо создать область виджетов (сайдбар), назначить виджет вновь созданной области и отобразить эту область с помощью dynamic_sidebar( 'id' );
.

Пользовательский виджет хорошо работает с <?php the_widget( '' ); ?>
Вы можете протестировать его.
Скопируйте пример виджета https://codex.wordpress.org/Widgets_API#Displaying_Widgets
Не забудьте зарегистрировать его, как указано в codex
add_action( 'widgets_init', ...
Вызовите его из index.php
<?php the_widget( 'Foo_Widget' ); ?>

Чистое, простое и легкое решение вашего вопроса — это плагин amr shortcode any widget. Как следует из названия, вы можете вставлять виджеты на свои страницы с помощью шорткодов, например:
[do_widget "Ваш Виджет" ]
