Saya mencoba untuk mendapatkan konten halaman ketika saya hanya tahu string siput.
Apakah ada fungsi untuk ini, atau cara mudah untuk melakukan ini atau ini kasus melakukannya melalui SQL?
Terima kasih banyak
sumber
Saya mencoba untuk mendapatkan konten halaman ketika saya hanya tahu string siput.
Apakah ada fungsi untuk ini, atau cara mudah untuk melakukan ini atau ini kasus melakukannya melalui SQL?
Terima kasih banyak
Gunakan get_posts()
dan parameter name
yang merupakan siput:
$page = get_posts( array( 'name' => 'your-slug' ) );
if ( $page )
{
echo $page[0]->post_content;
}
Perlu diketahui bahwa jenis posting secara get_posts()
default adalah 'post'
. Jika Anda ingin menggunakan halaman ...
$page = get_posts(
array(
'name' => 'your-slug',
'post_type' => 'page'
)
);
Jika Anda ingin semua jenis posting publik (kecuali lampiran) atur argumen tipe posting 'any'
. Maka Anda bisa mendapatkan lebih dari satu hasil karena siput tidak unik di berbagai jenis posting.
Anda bisa mendapatkan halaman berdasarkan judulnya menggunakan get_page_by_title()
fungsi.
Anda dapat menggunakannya seperti ini (dengan asumsi Anda ingin menampilkan konten):
$page = get_page_by_title('Your Title');
$content = apply_filters('the_content', $page->post_content);
echo $content;
BTW, untuk Mendapatkan halaman menggunakan siput:
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'));
Baca pada tag kondisional : is_page()
juga menganggap siput sebagai argumen.
Karenanya,
if( is_page( 'your-slug' ) ) {
// fetch content
}
akan melakukan apa yang Anda inginkan.
Jika Anda tertarik tentang cara mengambil konten posting / halaman berdasarkan siput ketika tidak pada halaman tersebut, Anda dapat memberi makan get_posts
siput juga. Ini tidak didokumentasikan dalam kodeks.
Yang berikut ini akan mengambil id dari siput:
$args = array(
'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );
// echo fetched content
echo $posts_from_slug[0]->post_content;
Gunakan get_page_by_path
.
Sintaksis
<?php get_page_by_path( $page_path, $output, $post_type ); ?>
Contoh:
//Returns the animal with the slug 'cat'
get_page_by_path('cat', OBJECT, 'animal');
untuk referensi lebih lanjut lihat Referensi Fungsi WordPress
Saya menggunakan kode ini saat mengisi templat tema dari suatu halaman,
$about = get_page_by_path('about');
$content = apply_filters( 'the_content', $about->post_content );
echo $content;