Ich versuche, Seiteninhalte abzurufen, wenn ich nur die Slug-Zeichenfolge kenne.
Gibt es eine Funktion dafür oder eine einfache Möglichkeit, dies zu tun, oder ist dies ein Fall, bei dem dies über SQL erfolgt?
Vielen Dank
quelle
Ich versuche, Seiteninhalte abzurufen, wenn ich nur die Slug-Zeichenfolge kenne.
Gibt es eine Funktion dafür oder eine einfache Möglichkeit, dies zu tun, oder ist dies ein Fall, bei dem dies über SQL erfolgt?
Vielen Dank
Verwenden Sie get_posts()
und den Parameter, name
der die Schnecke ist:
$page = get_posts( array( 'name' => 'your-slug' ) );
if ( $page )
{
echo $page[0]->post_content;
}
Beachten Sie, dass der Beitragstyp get_posts()
standardmäßig lautet 'post'
. Wenn Sie eine Seite möchten, verwenden Sie…
$page = get_posts(
array(
'name' => 'your-slug',
'post_type' => 'page'
)
);
Wenn Sie alle öffentlichen Beitragstypen (außer Anhängen) möchten, setzen Sie das Beitragstypargument auf 'any'
. Dann könnten Sie mehr als ein Ergebnis erhalten, da Schnecken nicht für verschiedene Beitragstypen eindeutig sind.
Sie können eine Seite anhand des Titels mithilfe der get_page_by_title()
Funktion abrufen.
Sie können es folgendermaßen verwenden (vorausgesetzt, Sie möchten den Inhalt anzeigen):
$page = get_page_by_title('Your Title');
$content = apply_filters('the_content', $page->post_content);
echo $content;
Übrigens, um Seite mit Slug zu bekommen:
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'));
Informieren Sie sich über bedingte Tags : Nimmtis_page()
auch den Slug als Argument.
Daher,
if( is_page( 'your-slug' ) ) {
// fetch content
}
wird tun was du willst.
Wenn Sie daran interessiert sind, wie Sie Post- / Seiteninhalte basierend auf einem Slug abrufen können, wenn Sie sich nicht auf dieser Seite befinden, können Sie auch get_posts
einen Slug füttern . Dies ist im Kodex nicht dokumentiert.
Im Folgenden wird die ID von einem Slug abgerufen:
$args = array(
'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );
// echo fetched content
echo $posts_from_slug[0]->post_content;
Verwenden Sie get_page_by_path
.
Syntax
<?php get_page_by_path( $page_path, $output, $post_type ); ?>
Beispiel:
//Returns the animal with the slug 'cat'
get_page_by_path('cat', OBJECT, 'animal');
Weitere Informationen finden Sie in der WordPress-Funktionsreferenz
Ich verwende diesen Code, wenn ich eine Themenvorlage von einer Seite ausfülle.
$about = get_page_by_path('about');
$content = apply_filters( 'the_content', $about->post_content );
echo $content;