Александр, спасибо за ответ, но давайте разберемся с сутью вопроса :
Мне кажется "криво" это непосредственно сам факт того, что вы виджетом меняете полностью шаблон страницы
Я же пишу что не меняю шаблон страницы. Приведенный мой код как раз не трогает шаблон, он вставляет МОЮ разметку в область контента. Смотрите , вот написано :
....переопределять весь шаблон мне не надо. футер, хедер и все остальное пусть будет на месте. мне нужно изменить лишь контент.
Я же специально об этом написал...
далее...
Виджет как правило просто какой-то отдельных блок с информацией, а не весь контент. Если вы делаете календарь во всю страницу, это не виджет, это календарь. Подмена понятий.
Где вы увидели про виджет? Я не использую виджеты.
Далее , мне нужно чтобы вся работа делалась плагином. Т.е чтобы пользователю не нужно было что-то переключить при создании страницы. Сделал страницу, добавил шорт код - вуаля.
В плагине шаблон можно переопределять вот как то так :
function get_custom_post_type_template($single_template) {
global $post;
if ($post->post_type == 'data_table') {
$single_template = dirname( __FILE__ ) . '/template.php';
}
return $single_template;
}
add_filter( 'single_template', 'get_custom_post_type_template' );
но в этом случае как вы совершенно верно выразились, нужно
подтянуть шапку и футер
. Т.е совершить еще какие-то действия, а в моем примере этого делать не надо. В готовый шаблон сайта вставляется нужная мне разметка. В остальном страница остается стандартной. Вот мне и интересно, чем плох приведенный мной подход. Хотелось бы реальных аргументов.
Еще раз благодарю за ответ