如何在WordPress unctions.php中获取2个或多个自定义POST类型

时间:2020-03-30 作者:herbals fresh

我使用下面的代码为帖子获取修改后的数据,但我需要为其他自定义帖子获取相同的修改后的帖子。例如,如果我将post更改为test(我的自定义post类型名称)“if(\'post\'==get\\u post\\u type())”,它就可以工作,但我需要测试、post和电影等。

function et_last_modified_date_blog( $the_date ) {
    if ( \'post\' === get_post_type() ) {
        $the_time = get_post_time( \'His\' );
        $the_modified = get_post_modified_time( \'His\' );

        $last_modified =  sprintf( __( \'Last updated %s\', \'Divi\' ), esc_html( get_post_modified_time( \'M j, Y\' ) ) );
        $date = $the_modified !== $the_time ? $last_modified : get_post_time( \'M j, Y\' );

        return $date;
    }
}
add_action( \'get_the_date\', \'et_last_modified_date_blog\' );
add_action( \'get_the_time\', \'et_last_modified_date_blog\' );

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

在if语句中,只需添加更多这样的条件。

function et_last_modified_date_blog( $the_date ) {
    if ( \'post\' === get_post_type() || \'movies\' === get_post_type() || \'etc\' === get_post_type()) {
        $the_time = get_post_time( \'His\' );
        $the_modified = get_post_modified_time( \'His\' );

        $last_modified =  sprintf( __( \'Last updated %s\', \'Divi\' ), esc_html( get_post_modified_time( \'M j, Y\' ) ) );
        $date = $the_modified !== $the_time ? $last_modified : get_post_time( \'M j, Y\' );

        return $date;
    }
}
add_action( \'get_the_date\', \'et_last_modified_date_blog\' );
add_action( \'get_the_time\', \'et_last_modified_date_blog\' );
“| |”表示或。因此,如果post type等于post或movies等,则条件为。

SO网友:mikerojas

另一种方法是使用in_array. 如果您的支票失败,您也不会返回原始日期。有关修复,请参阅下面的代码。

function et_last_modified_date_blog( $the_date ) {
    // all post types were are checking for
    $post_types = array(\'post\', \'movies\');

    // check to see if current post type is in the $post_types array
    if (in_array(get_post_type(), $post_types)) {
        $the_time = get_post_time( \'His\' );
        $the_modified = get_post_modified_time( \'His\' );

        $last_modified =  sprintf( __( \'Last updated %s\', \'Divi\' ), esc_html( get_post_modified_time( \'M j, Y\' ) ) );
        $date = $the_modified !== $the_time ? $last_modified : get_post_time( \'M j, Y\' );

        return $date;
    }

    // NOTE: you should return the original date here in case your check "fails"
    return $the_date;
}
add_action( \'get_the_date\', \'et_last_modified_date_blog\' );
add_action( \'get_the_time\', \'et_last_modified_date_blog\' );

相关推荐

归档页面的自定义帖子类型默认为index.php

我开发了一个自定义主题,其中包含一个名为events. 然而,出于某种原因,WP拒绝使用带有文件名的存档页面模板archive-events.php 根据WP的模板层次结构。WP始终默认为index.php 作为此帖子类型的模板。之前,我在WP中配置了一个页面,该页面被设置为slug/events/ 它现在是自定义post类型的slug。该页面现在已被删除,我不知道这是否是导致WP拒绝使用的问题archive-events.php 用于自定义帖子类型的存档列表。我试图修改并重新保存我的永久链接结构,但没有