Здравствуйте друзья, имею вот такой (вымученный) скрипт:
/*----------------------------- 3 ---------------------------*/
$paragraphAfter3 = 3;
*------------------------ WIDGET 3 ----------------------------*/
//Widget Area
add_action( 'widgets_init', 'register_my_widgets_google-ads-3' );
function register_my_widgets_main_google_ads_3(){
register_sidebar( array(
/* 'name' => sprintf(__('Sidebar %d'), $i ), */
'name' => 'My code 3',
/* 'id' => "sidebar-$i", */
'id' => 'google-ads-3',
'description' => '',
'class' => '',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => "</div>\n",
'before_title' => '<h2 class="google-ads-3 widgettitle">',
'after_title' => "</h2>\n",
) );
}
add_action( 'widgets_init', 'register_my_widgets_main_google_ads_3' );
/* function GoogleADS1(){
if ( function_exists('register_my_widgets_google-ads-1') )
dynamic_sidebar(google-ads-1);
}; */
add_filter( 'the_content', 'wpse_content_google_ads_3' );
function wpse_content_google_ads_3( $content ) {
if( !is_single() )
return $content;
/*Number paragraf*/
/* $paragraphAfter = 3; //number of paragraph */
global $paragraphAfter3;
$paragraphAfter = $paragraphAfter3; //number of paragraph
$content = explode ( "</p>", $content );
$new_content = '';
for ( $a = 0;
$a < count ( $content );
$a ++ ) {
if ( $a == $paragraphAfter ) {
ob_start();
if ( is_active_sidebar( 'google-ads-3' ) ) :
dynamic_sidebar( 'google-ads-3' );
else :
echo '<span></span>';
endif;
$result = ob_get_clean();
$new_content .= $result ;
}
elseif ($a != $paragraphAfter) {
$new_content .= '';
}
$new_content .= $content[$a] . "</p>";
}
return $new_content;
}
Данный скрипт вставляет содержимое виджета через определенное количество параграфов, и работает хорошо. Но если на странице параграфов меньше. То он слепливает содержимое виджитов в футер.
Как добиться что бы он не отображал виджет если в посте меньше параграфов чем в нем указано?