Estoy tratando de obtener contenido de la página cuando solo conozco la cadena slug.
¿Existe una función para esto, o una forma fácil de hacerlo o se trata de hacerlo a través de SQL?
Muchas gracias
Estoy tratando de obtener contenido de la página cuando solo conozco la cadena slug.
¿Existe una función para esto, o una forma fácil de hacerlo o se trata de hacerlo a través de SQL?
Muchas gracias
Utilice get_posts()
y el parámetro name
, que es la babosa:
$page = get_posts( array( 'name' => 'your-slug' ) );
if ( $page )
{
echo $page[0]->post_content;
}
Tenga en cuenta que el tipo de publicación en get_posts()
por defecto es 'post'
. Si quieres una página utiliza ...
$page = get_posts(
array(
'name' => 'your-slug',
'post_type' => 'page'
)
);
Si desea todos tipos de publicaciones públicas (excepto los adjuntos), configure el argumento de tipo de publicación en 'any'
. Entonces podrías obtener más de un resultado porque las babosas no son únicas en los diferentes tipos de publicaciones.
Lea sobre etiquetas condicionales :
is_page()
también toma el slug como argumento.
Por lo tanto,
if( is_page( 'your-slug' ) ) {
// fetch content
}
hará lo que quieras.
Si le interesa saber cómo obtener contenido de publicación / página basado en una bala cuando no en dicha página, puede ingresar get_posts
también es una babosa. Esto no está documentado en el códice.
Lo siguiente obtendrá el ID de una babosa:
$args = array(
'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );
// echo fetched content
echo $posts_from_slug[0]->post_content;
Puede obtener una página por su título usando la función get_page_by_title()
.
Puedes usarlo así (suponiendo que quieras mostrar el contenido):
$page = get_page_by_title('Your Title');
$content = apply_filters('the_content', $page->post_content);
echo $content;
Por cierto, para obtener la 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'));
Use get_page_by_path
.
Sintaxis
<?php get_page_by_path( $page_path, $output, $post_type ); ?>
Ejemplo:
//Returnstheanimalwiththeslug'cat'get_page_by_path('cat',OBJECT,'animal');
paraobtenermásinformación,consulte
Utilizo este código al rellenar una plantilla de tema desde una página,
$about = get_page_by_path('about');
$content = apply_filters( 'the_content', $about->post_content );
echo $content;
Lea otras preguntas en las etiquetas plugin-development php pages slug