Respostas:
Use get_posts()e o parâmetro nameque é 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_postsuma 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;