Tentukan apakah halaman adalah Halaman Posting


18

Pada halaman Pengaturan Membaca Anda dapat mengatur "Halaman Depan" dan "Halaman Posting". Anda dapat memeriksa apakah halaman saat iniis_front_page();

Apakah ada fungsi serupa untuk "Halaman Posting". Saya perhatikan bahwa is_page();ini tidak berfungsi untuk halaman khusus ini.

Terima kasih

Jawaban:


34

is_home() memeriksa "Halaman Posting", meskipun nama fungsinya agak membingungkan.


terima kasih, saya pikir saya sudah memeriksa semuanya, tapi saya kira tidak ...
mike

3
Bagaimana dengan $wp_query->is_posts_page?
Weston Ruter

@WestonRuter memiliki jawaban yang benar untuk pertanyaan itu.
The

6

Wordpress hadir dengan 7 jenis halaman templat utama, yang dapat ditentukan dengan cara ini

if ( is_main_query() ) {
    // Error
    if ( is_404() ) {
        ;
    }
    // Front page
    if ( is_front_page() ) {
        ;
    }
    // Archive
    if ( is_archive() ) {
        ;
    }
    // Comments popup
    if ( is_comments_popup() ) {
        ;
    }
    // Search
    if ( is_search() ) {
        ;
    }
    // Singular
    if ( is_singular() ) {
        ;
    }
    // Home - the blog page
    if ( is_home() ) {
        ;
    }
}

is_home memberitahu Anda, bahwa Anda memiliki halaman blog.


1

"Halaman posting" biasanya merupakan arsip dari:

  • posting dari kategori
  • posting dari tag
  • posting tanggal (tahun, bulan ...)
  • tulisan arsip utama

Masing-masing dapat diperiksa oleh salah satu dari banyak tag bersyarat seperti is_category() is_tag() is_date() is_archive() Dan banyak lagi. Untuk mendapatkan pemahaman yang lebih baik, kunjungi codex http://codex.wordpress.org/Conditional_Tags


0

Pertama periksa hal-hal terkait blog seperti penulis, tag, jenis posting

function is_blog () {
        global  $post;
        $posttype = get_post_type($post );
        return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post')  ) ? true : false ;
  }

Sekarang periksa dan kembalikan sesuatu yang ingin Anda miliki

function check_post_type(){
    $postType;
    if (is_blog())
      {
         $postType = 'I am post';
      } else
       {
          $postType = 'I am page';
       };
    return $postType;
  }

Gunakan seperti Boss <?php echo check_post_type();?>

Terima kasih untuk Wes Bos


0

TL; DR

Kasus A . Tidak perlu menentukannya di dalam file templat utama (index.php) karena itu adalah templat default untuknya [1] .

Kasus B . Untuk menentukannya di dalam templat halaman (mis: page.php), cukup periksa seperti ini:

get_option( 'page_for_posts' ) == get_the_ID()

Detail

Saya benar-benar pergi menggali kode sumber [2] hanya untuk mengetahui bagaimana wordpress melakukan pengecekan nilai. Ternyata, itu menggunakan pernyataan get_option( 'page_for_posts' )untuk mengetahui ID posting dari nilai yang dipilih dari halaman Posting .

Jadi ya, untuk tujuan ini, tidak ada fungsi pemeriksa resmi yang mirip is_front_page().

Selama Anda mengetahui ID halaman yang telah Anda pilih maka Anda dapat menggunakannya untuk proses pemeriksaan.

Referensi

  1. WordPress Codex, Pengembangan Tema, codex.wordpress.org/Theme_Development

  2. Sumber-kode PengaturanPengaturan Membaca , github.com/WordPress/.../wp-admin/options-reading.php

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.