我也在互联网上搜索过这个问题,但什么都找不到,所以对我来说,这个问题最有价值的部分是验证Wordpress中没有更好的东西。以下是我所知道的最好的方法。
这与标记答案的主要区别在于,它返回的是实数WP_Post
对象,并且不忽略$output
参数
function get_pages_by_title( $page_title, $output = OBJECT, $post_type = \'page\' ) {
global $wpdb;
$prepared = $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type = %s AND post_status = \'publish\' ORDER BY ID", $page_title, $post_type );
$results = $wpdb->get_results( $prepared );
$post_ids = array_map( function($x) { return intval($x->ID); }, $results );
$posts = get_posts( array(
\'numberposts\' => -1,
\'post_type\' => $post_type,
\'post__in\' => $post_ids,
\'ignore_sticky_posts\' => true,
\'orderby\' => \'ID\'
) );
return $posts;
}
(注意:我没有直接测试这段代码。它来自于我编写的代码,它更适合我的项目。如果您发现任何明显的错误,请修复!)