it-swarm.com.de

Holen Sie sich Seiteninhalt mit Slug

Ich versuche Seiteninhalt zu erhalten, 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, in dem dies über SQL erfolgt?

Vielen Dank

9
Alex

Verwenden Sie get_posts() und den Parameter name, bei dem es sich um den Slug handelt:

$page = get_posts( array( 'name' => 'your-slug' ) );

if ( $page )
{
    echo $page[0]->post_content;
}

Beachten Sie, dass der Post-Typ in get_posts() standardmäßig 'post' ist. Wenn Sie eine Seite verwenden möchten ...

$page = get_posts(
    array(
        'name'      => 'your-slug',
        'post_type' => 'page'
    )
);

Wenn Sie möchten, dass all öffentliche Beitragstypen (mit Ausnahme von Anhängen), setzen Sie das Argument für den Beitragstyp auf 'any'. Dann könnten Sie mehr als ein Ergebnis erhalten, da die Butzen nicht für alle Beitragstypen eindeutig sind.

27
fuxia

Befindet sich auf der Seite mit der betreffenden Schnecke

Lesen Sie auf Bedingte Tags :
is_page() nimmt auch die Schnecke als Argument.

Daher,

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

werde tun was du willst.

Wenn auf einer anderen Seite

Wenn Sie interessiert sind, wie Post-/Seiteninhalte basierend auf einem Slug abgerufen werden, wenn nicht auf dieser Seite, können Sie auch get_posts einen Slug eingeben. Dies ist im Kodex nicht dokumentiert.

Folgendes ruft die ID von einem Slug ab:

$args = array(
    'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );

// echo fetched content
echo $posts_from_slug[0]->post_content;
4
Johannes Pille

Sie können eine Seite anhand ihres Titels mit der Funktion get_page_by_title() abrufen.

Sie können es wie folgt 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 Schnecke 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'));
3
Sisir

Verwenden Sie get_page_by_path.

Syntax

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

 Parameters 

Beispiel:

//Returns the animal with the slug 'cat'
get_page_by_path('cat', OBJECT, 'animal');

weitere Informationen finden Sie unter WordPress-Funktionsreferenz

Ich benutze diesen Code, wenn ich eine Designvorlage von einer Seite ausfülle,

        $about = get_page_by_path('about'); 
        $content = apply_filters( 'the_content', $about->post_content ); 
        echo $content;
1
PlanetHackers