我要在此代码中添加什么才能包括其他CPT?

时间:2016-11-06 作者:glvr

我使用下面的代码在编辑屏幕上为CPT“item”添加消息。

$screen = get_current_screen();
if($screen->post_type==\'item\' && $screen->id==\'item\')  
我需要添加什么来包括其他CPT?例如“foo”?

我可以用“elseif”来完成,但我认为可能有一种更短的方法,将| |与单个“if”一起使用。

3 个回复
SO网友:jgraup

嵌套条件或包装条件的步骤() 并与分隔||.

if( ($screen->post_type==\'item\' || $screen->post_type==\'product\') && $screen->id==\'item\')

SO网友:Prasad Nevase

如果您想在CPT列表页面上显示消息,则以下是完整的代码:

function pn_current_screen_example( $current_screen ) {
    if ( ( \'post\' === $current_screen->post_type || \'product\' === $current_screen->post_type ) && \'edit\' == $current_screen->base ) {
        add_action( \'admin_notices\', \'pn_sample_admin_notice\' );
    }
}
add_action( \'current_screen\', \'pn_current_screen_example\' );

function pn_sample_admin_notice() {
    ?>
    <div class="notice notice-success is-dismissible">
        <p><?php _e( \'This is sample admin notice!\', \'sample-text-domain\' ); ?></p>
    </div>
    <?php
}
?>
如果要在CPT编辑页面上显示消息,则以下是完整代码:

function pn_current_screen_example( $current_screen ) {
    if ( ( \'post\' === $current_screen->post_type || \'product\' === $current_screen->post_type ) && $_GET[\'action\']=== \'edit\' ) {
        add_action( \'admin_notices\', \'pn_sample_admin_notice\' );
    }
}
add_action( \'current_screen\', \'pn_current_screen_example\' );

function pn_sample_admin_notice() {
    ?>
    <div class="notice notice-success is-dismissible">
        <p><?php _e( \'This is sample admin notice!\', \'sample-text-domain\' ); ?></p>
    </div>
    <?php
}
?>

SO网友:mmm

您可以使用in_array 就像这样:

if (    in_array($screen->post_type, [\'item\', \'product\'])
    &&  ($screen->id === $screen->post_type)
) {
    // ...

}

相关推荐