Estou tentando obter o conteúdo da página quando só conheço a string slug.
Existe uma função para isso, ou uma maneira fácil de fazer isso ou é um caso de fazê-lo via SQL?
Muito obrigado
fonte
Estou tentando obter o conteúdo da página quando só conheço a string slug.
Existe uma função para isso, ou uma maneira fácil de fazer isso ou é um caso de fazê-lo via SQL?
Muito obrigado
Use get_posts()
e o parâmetro name
que é a lesma:
$page = get_posts( array( 'name' => 'your-slug' ) );
if ( $page )
{
echo $page[0]->post_content;
}
Esteja ciente de que o tipo de postagem é get_posts()
padrão 'post'
. Se você quiser uma página, use…
$page = get_posts(
array(
'name' => 'your-slug',
'post_type' => 'page'
)
);
Se você deseja todos os tipos de postagem pública (exceto anexos), defina o argumento do tipo de postagem como 'any'
. Você poderá obter mais de um resultado, pois as lesmas não são únicas nos diferentes tipos de postagem.
Você pode obter uma página pelo título usando a get_page_by_title()
função
Você pode usá-lo assim (supondo que você queira mostrar o conteúdo):
$page = get_page_by_title('Your Title');
$content = apply_filters('the_content', $page->post_content);
echo $content;
BTW, para obter página usando 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'));
Leia sobre tags condicionais : is_page()
também aceita a lesma como argumento.
Conseqüentemente,
if( is_page( 'your-slug' ) ) {
// fetch content
}
fará o que você quiser.
Se você estiver interessado em obter o conteúdo da postagem / página com base em uma lesma, quando não estiver nessa página, também poderá alimentar get_posts
uma lesma. Isso não está documentado no codex.
O seguinte buscará o ID de uma lesma:
$args = array(
'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );
// echo fetched content
echo $posts_from_slug[0]->post_content;
Use get_page_by_path
.
Sintaxe
<?php get_page_by_path( $page_path, $output, $post_type ); ?>
Exemplo:
//Returns the animal with the slug 'cat'
get_page_by_path('cat', OBJECT, 'animal');
para obter mais referências, consulte Referência de funções do WordPress
Eu uso esse código ao preencher um modelo de tema de uma página,
$about = get_page_by_path('about');
$content = apply_filters( 'the_content', $about->post_content );
echo $content;