Get largest page id by title?

时间:2018-05-11 作者:Edward

假设有几个标题相同的页面,如何获取id最大(最新)的页面的id?我试过了get_page_by_title, 但它返回最小的id(最旧的)。

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 );
    }
}

结束

相关推荐

Design view breaking on Pages

对于我的客户端站点,当我尝试创建新页面并发布设计视图时,设计视图被破坏了,但博客帖子视图显示正确,该站点使用了以前的开发人员开发的自定义WordPress主题。Wp站点:http://blog.biblesforamerica.org页码:http://blog.biblesforamerica.org/online-bible-studies-bibles-america/如何做到这一点?这是单曲的代码。页php<div id=\"primary\" class=\"content-area\"&