如何在此WordPress插件中运行函数而不是文本



这是一个简单的代码,在单个帖子页面上显示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()回显的内容。

相关内容

  • 没有找到相关文章

最新更新