Wordpress通过标题而不是页面ID进行query_posts查询?

7 浏览
0 Comments

Wordpress通过标题而不是页面ID进行query_posts查询?

假设我正在展示的页面的标题是\"关于\",而id是49。有没有办法改变它,以便它可以根据页面的标题而不是id来提取内容。\n目前我正在使用的代码如下:\n


    

\n谢谢你的帮助!

0
0 Comments

在这个问题中,用户想要通过标题而不是页面ID来查询WordPress的帖子。下面是问题出现的原因和解决方法。

原因:

用户可能有一些特定的理由,不希望使用页面ID来查询帖子,而是想要根据帖子的标题进行查询。

解决方法:

用户可以使用WordPress提供的`get_page_by_title()`函数来根据帖子标题进行查询。这个函数将返回一个帖子对象,用户可以使用这个对象来获取帖子的其他相关信息。

下面是使用`get_page_by_title()`函数的示例代码:

$post = get_page_by_title( '帖子标题', OBJECT, 'post' ); 
if ( $post ) {
    // 处理帖子
}

在上面的代码中,我们将帖子标题作为参数传递给`get_page_by_title()`函数。函数的第二个参数是对象类型,我们可以选择将其设置为'OBJECT'或'ARRAY_A',分别返回对象或关联数组。第三个参数是帖子类型,我们可以将其设置为'post'或'page',具体取决于我们要查询的帖子类型。

使用`get_page_by_title()`函数,我们可以通过帖子的标题查询帖子对象,并对其进行进一步处理。这样,我们可以根据标题而不是页面ID来查询WordPress的帖子。

0
0 Comments

问题的原因是在使用WordPress的query_posts函数时,通过页面标题查询而不是页面ID查询。这可能是因为用户想要根据页面的标题来获取内容,而不是根据页面的ID来获取内容。解决方法是创建一个自定义函数get_content_by_slug,该函数通过页面的slug(即标题的URL友好版本)来获取页面的内容。

首先,在主题的functions.php文件中添加以下代码:

if ( ! function_exists( 'get_content_by_slug' ) ) :
    /**
     * Get content using a slug
     *
     * @param string $page_slug The slug of the page
     * @return string|null The content of the page or null if page is not found
     */    
    function get_content_by_slug($page_slug) {
        $page = get_page_by_path($page_slug);
        if ($page) {
            $page_content = $page->post_content;
            $page_content = apply_filters('the_content', $page_content);            
            return $page_content;
        } else {
            return null;
        }
    }
endif;

然后,可以在需要获取页面内容的地方使用以下代码:


这将输出具有指定slug的页面的内容。

然而,有一个小问题。除了显示用户指定的页面内容外,还会显示“Hello World”帖子。这可能是因为代码是在WordPress的循环中运行的。解决这个问题的方法是删除代码中的循环部分。

最后,用户可以根据自己的需要将get_content_by_slug函数和相关代码添加到主题文件中,以实现根据页面标题获取内容的功能。

0