这是一个简单的代码,显示单个帖子页面上第二段之后的Adsense或任何广告代码。但我想知道如何修改它以便它可以运行动态函数。
//Insert ads after second paragraph of single post content.
add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads( $content ) {
$ad_code = '<div>Ads code goes here</div>';
if ( is_single() && ! is_admin() ) {
return prefix_insert_after_paragraph( $ad_code, 2, $content );
}
return $content;
}
// Parent Function that makes the magic happen
function prefix_insert_after_paragraph( $insertion, $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] .= $insertion;
}
}
return implode( '', $paragraphs );
}
实际上我想替换
$ad_code = '<div>Ads code goes here</div>';
带
$ad_code = '<?php if(function_exists('echo_ald_crp')) echo_ald_crp(); ?>';
有办法吗?
答案 0 :(得分:0)
好吧,你不能将PHP分配给string var
并期望它执行。您可以使用其中的代码创建一个函数,让它返回一些内容,然后将该变量设置为等于函数调用。像这样:
function output_function() {
//do something here
return $thing_you_want_to_return;
}
function prefix_insert_post_ads( $content ) {
$ad_code = output_function();
if ( is_single() && ! is_admin() ) {
return prefix_insert_after_paragraph( $ad_code, 2, $content );
}
return $content;
}
这样,当分配变量时,它将运行您的函数并返回您希望用prefix_insert_after_paragraph()
回显的内容。