Вот мой код для регистрации виджета боковой панели
// Sidear Register
add_action('widgets_init', 'comet_sidebar');
function comet_sidebar() {
register_sidebar(array(
'name' => __('Right Sidebar', 'comet'),
'description' => __('Put Right Sidebar here', 'comet'),
'id' => 'right-sidebar',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h6 class="upper">',
'after_title' => '</h6>',
));
register_sidebar(array(
'name' => __('Footer Left', 'comet'),
'description' => __('Put Footer Sidebar here', 'comet'),
'id' => 'footer-left',
'before_widget' => '<div class="col-sm-4"><div class="widget">',
'after_widget' => '</div></div>',
'before_title' => '<h6 class="upper">',
'after_title' => '</h6>',
));
register_sidebar(array(
'name' => __('Footer Right', 'comet'),
'description' => __('Put Footer Sidebar here', 'comet'),
'id' => 'footer-right',
'before_widget' => '<div class="col-sm-4"><div class="widget">',
'after_widget' => '</div></div>',
'before_title' => '<h6 class="upper">',
'after_title' => '</h6>',
));
}
А вот и другие мои php файлы. Я потребовал
if( file_exists( dirname(__FILE__). '/gallery.php' ) ) {
require_once(dirname(__FILE__). '/gallery.php' );
}
Код для gallery.php
<?phpadd_shortcode('gallery', 'comet_gallery');
function comet_gallery($attr, $content) {
$att = shortcode_atts( array(
'ids' => '',
), $attr);
extract($att);
$idd = explode(',', $ids);
ob_start(); ?>
<div data-options="{"animation": "slide", "controlNav": true" class="flexslider nav-outside">
<ul class="slides">
<?php foreach($idd as $id) : ?>
<?php $musa = wp_get_attachment_image_src($id, 'full'); ?>
<li><img src="<?php echo $musa [0]; ?>"></li>
<?php endforeach; ?>
</ul>
</div>
<?php return ob_get_clean();
}
Когда мне понадобился этот файл. Мой виджет не работает правильно. Если я удаляю это требуется файл. Работает отлично.
Спасибо
Я не думаю что return ob_get_clean();
верно.
Попробуйте это вместо этого:
<?php
add_shortcode('gallery', 'comet_gallery');
function comet_gallery($attr, $content) {
$att = shortcode_atts( array(
'ids' => '',
), $attr);
extract($att);
$idd = explode(',', $ids);
?>
<div data-options="{"animation": "slide", "controlNav": true" class="flexslider nav-outside">
<ul class="slides">
<?php foreach($idd as $id) : ?>
<?php $musa = wp_get_attachment_image_src($id, 'full'); ?>
<li><img src="<?php echo $musa [0]; ?>"></li>
<?php endforeach; ?>
</ul>
</div>
<?php return $content;
}
function comet_gallery_start() { ob_start("comet_gallery"); }
function comet_gallery_end() { ob_end_flush(); }
add_action('wp_head', 'comet_gallery_start');
add_action('wp_footer', 'comet_gallery_end');
а также
require_once( TEMPLATEPATH."/gallery.php" );
Других решений пока нет …