Get page content using slug

时间:2012-10-06 作者:Alex

当我只知道slug字符串时,我正在尝试获取页面内容。

是否有实现此目的的函数,或者有一种简单的方法,或者这是通过SQL实现的?

非常感谢

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

使用get_posts() 和参数name 哪一个是slug:

$page = get_posts([ \'name\' => \'your-slug\' ]);

if ( $page )
{
    echo $page[0]->post_content;
}
请注意,post输入get_posts() 默认为\'post\'. 如果你想page 使用…

$page = get_posts([
    \'name\'      => \'your-slug\',
    \'post_type\' => \'page\'
]);
如果你愿意all 公共帖子类型(附件除外)将帖子类型参数设置为\'any\'. 然后您可能会得到不止一个结果,因为slug在不同的post类型中不是唯一的。

SO网友:Johannes Pille

如果页面上有问题的弹头

请阅读conditional tags:
is_page() 还将slug作为参数。

因此

if( is_page( \'your-slug\' ) ) {
     // fetch content
}
会做你想做的事。

如果在另一个页面上,如果您对如何根据slug获取帖子/页面内容感兴趣,而不是在所述页面上,您可以feedget_posts 还有一只鼻涕虫。这在法典中没有记录。

以下内容将从slug获取id:

$args = array(
    \'name\' => \'your-slug\'
);
$posts_from_slug = get_posts( $args );

// echo fetched content
echo $posts_from_slug[0]->post_content;

SO网友:Sisir

您可以使用get_page_by_title() 作用

You can use it like this (assuming you want to show the content):

$page = get_page_by_title(\'Your Title\'); 
$content = apply_filters(\'the_content\', $page->post_content);
echo $content;

BTW, to Get page using slug:

function get_page_id_by_slug($slug){
    global $wpdb;
    $id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = \'".$slug."\'AND post_type = \'page\'");
    return $id;
}

$page = get_post(get_page_id_by_slug(\'my-slug\'));

SO网友:Sanjay Goswami

使用get_page_by_path 要检索WP\\u Post对象,则可以提取Post内容,并在必要时过滤HTML输出。

Syntax

get_page_by_path( string $page_path, string $output = OBJECT, string|array $post_type = \'page\' )

Example:

我在从页面填充主题模板时使用此代码,以确保内容呈现为HTML:

<?php
$about = get_page_by_path(\'about\'); 
$content = apply_filters( \'the_content\', $about->post_content ); 
echo $content;
?>
要获取不同类型的帖子,请传入其他两个参数:

get_page_by_path(\'cat\', OBJECT, \'animal\');
有关更多参考,请参阅WordPress Function Reference

Parameters

结束

相关推荐

导航在自定义Header.php中不起作用

我做了一个定制header-blog.php(对于博客页面/home.php) 除了header.php, 两者使用完全相同的<nav> 密码在使用header.php, 导航工作正常。然而,在博客页面上(home.php), 其中使用header-blog.php, 导航不起作用-所有链接都会导致“未找到任何内容”这可能是什么原因?我怎样才能修复它?这是我第一次做这样的事情,所以非常感谢你的见解和想法。标题博客。php<!DOCTYPE html> <ht