WordPress挂钩/筛选器在内容之前或标题之后插入

时间:2012-01-24 作者:Jason

尝试在“我的函数”中的帖子内容之前插入内容。php-我知道如何使用常规wp挂钩,但不确定如何插入其他区域。

尝试了此操作,但它会删除任何其他帖子类型上的内容:

function property_slideshow( $content ) {
 if ( is_single() && \'property\' == get_post_type() ) {
    $custom_content = \'[portfolio_slideshow]\';
    $custom_content .= $content;
    return $custom_content;
    } 
}
add_filter( \'the_content\', \'property_slideshow\' );
我如何使其有条件?

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

只需使用the_content 过滤器,例如:

<?php
function theme_slug_filter_the_content( $content ) {
    $custom_content = \'YOUR CONTENT GOES HERE\';
    $custom_content .= $content;
    return $custom_content;
}
add_filter( \'the_content\', \'theme_slug_filter_the_content\' );
?>
基本上,您可以在自定义内容之后添加帖子内容,然后返回结果。

编辑

正如Franky@bueltge在评论中指出的那样,帖子标题的过程是相同的;只需在the_title 挂钩:

<?php
function theme_slug_filter_the_title( $title ) {
    $custom_title = \'YOUR CONTENT GOES HERE\';
    $title .= $custom_title;
    return $title;
}
add_filter( \'the_title\', \'theme_slug_filter_the_title\' );
?>
请注意,在本例中,您将自定义内容附加到标题之后。(不管是哪一个,我只是同意你在问题中所说的。)

编辑2示例代码不起作用的原因是您只返回$content 当您的条件得到满足时。你需要回去$content, 未修改,作为else 你的条件。e、 g.:

function property_slideshow( $content ) {
    if ( is_single() && \'property\' == get_post_type() ) {
        $custom_content = \'[portfolio_slideshow]\';
        $custom_content .= $content;
        return $custom_content;
    } else {
        return $content;
    }
}
add_filter( \'the_content\', \'property_slideshow\' );
这样,对于非“属性”帖子类型的帖子,$content 返回,未修改。

SO网友:Brad Dalton

function property_slideshow( $content ) {
    if ( is_singular( \'property\' ) ) {
        $custom_content = do_shortcode( \'[portfolio_slideshow]\' );
        $custom_content .= $content;
        }
        return $custom_content;
}
add_filter( \'the_content\', \'property_slideshow\' );
Theis_singular 条件标记检查是否显示单个帖子,并允许您指定$post\\U types参数,在本例中,该参数是属性。

还有,你可能想看看do_shortcode

结束

相关推荐

Apply_Filters函数及其变量的说明

我正在学习如何使用PHP构建html表单,方法是以“simplr表单注册”插件为例。我正在查看以下代码:$form .= apply_filters(\'simplr-reg-instructions\', __(\'Please fill out this form to sign up for this site\', \'simplr-reg\')); 您能解释一下这里发生了什么吗?函数的作用是什么,为什么需要“simpr reg指令”和“simpr reg”?为什么这句话不能简单地说:$