假设有几个标题相同的页面,如何获取id最大(最新)的页面的id?我试过了get_page_by_title
, 但它返回最小的id(最旧的)。
Get largest page id by title?
3 个回复
SO网友:D. Dan
通过使用wp\\U查询,您可以进行更多控制:
$title = "your title"
$q = new WP_Query (array(
\'posts_per_page\' => 1,
\'title\' => $title,
));
然后您可以迭代,但因为我们使用了每页1的帖子,所以您只能得到1个项目。默认情况下,wp query显示最后一个first-By日期,您可以使用orderby参数对此进行更改。检查here.while ($q->have_posts()){
$q->the_post();
the_title();
}
编辑:如果要在此代码段之后在需要主循环的地方使用此代码,请使用以下命令重置循环:wp_reset_postdata();
SO网友:Adarsh
$pages = get_pages(
array (
\'parent\' => 0,
\'orderby\' => \'id\',
\'order\' => \'ASC\',
)
);然后从变量$pages中获取数组中的第0个元素SO网友:IvanMunoz
我看不到任何Wordpress函数,但您可以在原始函数的基础上以自己的方式进行操作:
/*
* FUNC BASED ON Wordpress function: get_page_by_title ON post.php
*/
function custom_get_page_by_title( $page_title, $output = OBJECT,$post_type = \'page\' )
{
global $wpdb;
if ( is_array( $post_type ) ) {
$post_type = esc_sql( $post_type );
$post_type_in_string = "\'" . implode( "\',\'", $post_type ) . "\'";
$sql = $wpdb->prepare( "
SELECT ID
FROM $wpdb->posts
WHERE post_title = %s
AND post_type IN ($post_type_in_string)
ORDER BY ID DESC
", $page_title );
} else {
$sql = $wpdb->prepare( "
SELECT ID
FROM $wpdb->posts
WHERE post_title = %s
AND post_type = %s
ORDER BY ID DESC
", $page_title, $post_type );
}
$page = $wpdb->get_var( $sql );
if ( $page ) {
return get_post( $page, $output );
}
}
结束