Holen Sie sich Seiteninhalte mit Slug


9

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

Antworten:


30

Verwenden Sie get_posts()und den Parameter, nameder 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.


4

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'));

4

Wenn auf der Seite mit der fraglichen Schnecke

Informieren Sie sich über bedingte Tags : Nimmt
is_page() auch den Slug als Argument.

Daher,

if( is_page( 'your-slug' ) ) {
     // fetch content
}

wird tun was du willst.

Wenn auf einer anderen Seite

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_postseinen 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;

1

Verwenden Sie get_page_by_path.

Syntax

<?php get_page_by_path( $page_path, $output, $post_type ); ?>

Parameter

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;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.