在函数中区分页面和POST

时间:2019-10-21 作者:JohnG

我正在尝试将一些文本应用到“特色图像”框中。它可以很好地用于自定义帖子类型,但我无法在页面上而不是帖子上显示特定的文本。

add_filter( \'admin_post_thumbnail_html\', \'foo\' );
function foo( $content ) {
    global $post_type;
    if ( $post_type = \'page\') {
        $content = \'<p>foobar</p>\' . $content;
     }
    else{
        $content = \'<p>barfoo</p>\' . $content;
     }
     return $content;
}
如何让WordPress识别它是否只是一个页面?

1 个回复
SO网友:Chetan Vaghela

通过使用帖子id,您可以获取当前帖子/页面的帖子类型。尝试以下代码。我已经测试过了,对我来说效果很好。

add_filter( \'admin_post_thumbnail_html\', \'foo\',10,3 );
function foo( $content, $post_id, $thumbnail_id ) {
   if ( get_post_type( $post_id ) == \'page\' ) {
        $content = \'<p>foobar</p>\' . $content;
     }
    else{
        $content = \'<p>barfoo</p>\' . $content;
     }
     return $content;
}
如果这对你有用,请告诉我!

相关推荐

为内置钩子调用do_action和Apply_Filters是否安全?

我正在开发一个插件,它需要复制一些内置的WordPress逻辑。(此逻辑不能用任何内置方法调用,也不能独立连接到。)在这个动作序列中,WordPress的正常行为是调用动作挂钩(do_action(\'wp_login\', ...)) 和过滤器挂钩(apply_filters(\'login_redirect\', ...)).如果在对应于在Core中调用它们的时间点调用它们,那么直接从我的插件调用这些内置钩子是否安全(并且是可以接受的做法)?或者,其他与此相关的开发人员期望在非常特定的时间执行操作的风