テキストコンテンツの間にGoogleによる広告を表示したいのですが、1番目のパラの後に3番目の広告を3番目のパラグラフの後に、最後のパラグラフの最後に1つ表示します。
私はsingle.php
で変更しなければならないことを知っていますが、phpの初心者であるためにこれを行うことができません。
誰かが私を助けることができれば本当に役立つでしょう。ありがとう。
ショートコードまたは the_content
フィルタ を使用できます。私はthe_content
フィルタがあなたの投稿に文字列を導入しないのでより良いと思います、それでコンテンツはエクスポートされ必要ならば他のプラットフォームで使用されることができます。たとえば、最初のパラグラフの後にAdSenseのブロックを表示するには、次のように入力します。
add_filter( 'the_content', 'tbn_ads_inside_content' );
function tbn_ads_inside_content( $content ) {
//We don't want to modify the_content in de admin area
if( !is_admin() ) {
$ads = "<p>your_ads_code</p>";
$p_array = explode('</p>', $content );
$p_count = 1;
if( !empty( $p_array ) ){
array_splice( $p_array, $p_count, 0, $ads );
$output = '';
foreach( $p_array as $key=>$value ){
$output .= $value;
}
}
}
return $output;
}
これは私が投稿の2番目の段落の後にウィジェットを追加するために使用する関数です。これは最初の投稿と単一の投稿のみですので、すべての投稿でこれを表示する必要がある場合は少し微調整する必要があります。あなたはあなたのニーズに合うようにこれを修正することができるはずです。お役に立てれば
// Add advertising widget within the firts post and single posts
function pietergoosen_insert_content_after_second_paragraph_filter( $content ) {
static $first;
$first = (!isset($first)) ? true : false;
if (true == $first) {
ob_start();
echo '<div class="widget-box">';
dynamic_sidebar( 'sidebar-19' );
echo '</div><!-- end .widget-box -->';
$new_content = ob_get_clean();
if ( ! is_admin() ) {
return pietergoosen_insert_content_after_second_paragraph( $new_content, 2, $content );
}
}
return $content;
}
add_filter('the_content','pietergoosen_insert_content_after_second_paragraph_filter');
// Paragraph explode and insert
function pietergoosen_insert_content_after_second_paragraph( $new_content, $paragraph_id, $content ) {
$closing_p = '</p>';
$paragraphs = explode( $closing_p, $content );
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $paragraph_id == $index + 1 ) {
$paragraphs[$index] .= $new_content;
}
}
return implode( '', $paragraphs );
}