这是一个简单的代码,在单个帖子页面上显示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(); ?>';
有什么办法吗??
好吧,你不能将 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()
回显的内容。