Jadual Kandungan
Apa yang anda perlukan
Tetapkan tema
创建索引文件
创建一个空的index.php文件
识别类别
定义查询参数
运行查询
Latest in name; ?>:
避免重复帖子
添加样式
Buat fail index.php kosong
Kenal pasti kategori
Tentukan parameter pertanyaan
Jalankan pertanyaan
Elakkan siaran pendua
Rumah hujung hadapan web html tutorial Tunjukkan siaran terkini setiap kategori

Tunjukkan siaran terkini setiap kategori

Aug 31, 2023 am 11:29 AM
Pengekstrakan kata kunci Tunjukkan siaran terkini Paparan kategori

Secara lalai, halaman blog WordPress utama anda memaparkan siaran terbaharu anda dalam susunan tarikh menurun. Walau bagaimanapun, jika anda menggunakan kategori di tapak anda dan pembaca anda ingin melihat kandungan baharu dalam setiap kategori, anda mungkin mahu halaman blog anda kelihatan berbeza.

Dalam tutorial ini saya akan menunjukkan kepada anda bagaimana untuk melakukan ini. Saya akan tunjukkan caranya:

  • Kenal pasti semua kategori di blog anda
  • Menunjukkan siaran terkini untuk setiap siaran, atau imej yang ditampilkan jika siaran itu ada
  • Pastikan siaran merentas berbilang kategori tidak diduplikasi
  • Tambah beberapa penggayaan untuk menjadikannya kelihatan menarik

Apa yang anda perlukan

Untuk mengikuti tutorial ini anda perlukan:

  • Pemasangan pembangunan WordPress.
  • Beberapa siaran dan kategori telah disediakan. Saya menggunakan contoh data daripada data ujian unit tema WordPress.
  • Satu tema. Saya akan mencipta subtopik topik "Dua Puluh Empat".
  • Penyunting kod.

Tetapkan tema

Langkah pertama ialah menyediakan tema. Saya akan mencipta tema kanak-kanak bagi tema "Dua Puluh Empat", yang mengandungi hanya dua fail: style.css dan index.php . style.cssindex.php

这是我的样式表:

/*
Theme Name: Display the Most Recent Post in Each Category
Theme URI: http://code.tutsplus.com/tutorials/display-the-most-recent-post-in-each-category--cms-22677
Version: 1.0.0
Description: Theme to accompany tutorial on displaying the most recent post fort each term in a taxonomy for Tutsplus, at http://bitly.com/14cm0yb
Author: Rachel McCollin
Author URI: http://rachelmccollin.co.uk
License: GPL-3.0+
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Domain Path: /lang
Text Domain: tutsplus
Template: twentyfourteen
*/

@import url('../twentyfourteen/style.css');
Salin selepas log masuk

我稍后会返回此文件来添加样式,但现在 WordPress 只需要识别子主题即可。

创建索引文件

由于我希望我的主博客页面显示每个类别中的最新帖子,因此我将在我的子主题中创建一个新的 index.php 文件。

创建一个空的index.php文件

首先,我将复制 24 中的 index.php 文件,并编辑掉循环和其他内容,使其看起来像这样:

<?php
/**
 * The main template file.
 * 
 * Based on the `index.php` file from TwentyFourteen, with an edited version of the `content.php` include file from that theme included here.
 */
?>

<?php get_header(); ?>

<div id="main-content" class="main-content">

    <?php
        if ( is_front_page() && twentyfourteen_has_featured_posts() ) {

            // Include the featured content template.
            get_template_part( 'featured-content' );

        }
    ?>

    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

        </div>
    </div>
    <?php get_sidebar( 'content' ); ?>
</div>

<?php get_sidebar(); ?>
<?php get_footer(); ?>
Salin selepas log masuk

识别类别

第一步是确定博客中的类别。紧接着打开 <div id="content"> 标签,添加以下内容:

<?php
    $categories = get_categories(); 

    foreach ( $categories as $category ) {

    }
?>
Salin selepas log masuk

这使用 get_categories() 函数来获取博客中的类别列表。默认情况下,这将按字母顺序获取,并且不会包含任何空类别。这对我有用,所以我不会添加任何额外的参数。

然后我使用 foreach ( $categories as $category ) {} 告诉 WordPress 依次运行每个类别并运行大括号内的代码。下一步将创建一个针对每个类别运行的查询。

定义查询参数

现在您需要定义查询的参数。在大括号内添加以下内容:

$args = array(
    'cat' => $category->term_id,
    'post_type' => 'post',
    'posts_per_page' => '1',
);
Salin selepas log masuk

这只会获取当前类别中的一篇帖子。

运行查询

接下来,使用 WP_Query 类插入查询:

$query = new WP_Query( $args );

if ( $query->have_posts() ) { ?>

    <section class="<?php echo $category->name; ?> listing">
        <h2 id="Latest-in-php-echo-category-name">Latest in <?php echo $category->name; ?>:</h2>

        <?php while ( $query->have_posts() ) {

            $query->the_post();
            ?>

            <article id="post-<?php the_ID(); ?>" <?php post_class( 'category-listing' ); ?>>
                <?php if ( has_post_thumbnail() ) { ?>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_post_thumbnail( 'thumbnail' ); ?>
                    </a>
                <?php } ?>

                <h3 class="entry-title">
                    <a href="<?php the_permalink(); ?>">
                        <?php the_title(); ?>
                    </a>
                </h3>

                <?php the_excerpt( __( 'Continue Reading <span class="meta-nav">&rarr;</span>', 'twentyfourteen' ) ); ?>

            </article>

        <?php } // end while ?>

    </section>

<?php } // end if

// Use reset to restore original query.
wp_reset_postdata();
Salin selepas log masuk

这将输出每篇文章的特色图片、标题和摘录,并且每一个都包含在一个链接中。

让我们看看现在的样子:

Tunjukkan siaran terkini setiap kategori

如您所见,存在问题。我的页面显示每个类别中的最新帖子,但它是重复的帖子,因为有时一个帖子会是多个类别中的最新帖子。让我们解决这个问题。

避免重复帖子

在添加 get_categories() 函数的行上方,添加以下行:

$do_not_duplicate = array();
Salin selepas log masuk

这会创建一个名为 $do_not_duplicate 的空数组,我们将用它来存储每个帖子输出的 ID,然后检查稍后查询的任何帖子的 ID 是否在其中该数组。

接下来,在查询选项下方添加一个新行,因此前两行如下所示:

<?php while ( $query->have_posts() ) {

    $query->the_post();

    $do_not_duplicate[] = $post->ID;
    ?>
Salin selepas log masuk

这会将当前帖子的 ID 添加到 $do_not_duplicate 数组。

最后,向查询参数添加一个新参数,以避免输出此数组中的任何帖子。您的论点现在如下所示:

$args = array(
    'cat' => $category->term_id,
	'post_type' => 'post',
	'posts_per_page' => '1',
	'post__not_in' => $do_not_duplicate
);
Salin selepas log masuk

这使用 'post__not_in' 参数来查找帖子 ID 数组。

保存您的 index.php 文件并再次查看您的博客页面:

Tunjukkan siaran terkini setiap kategori

这样更好了!现在您的帖子不再重复。

添加样式

目前,内容有点分散,特色图片位于帖子标题和摘录上方。让我们添加一些样式以使图像向左浮动。

在主题的 style.css

Ini adalah lembaran gaya saya:

.listing h2 {
    margin-left: 10px;
}

.category-listing img {
    float: left;
    margin: 10px 2%;
}

.category-listing .entry-title {
    clear: none;
}
Salin selepas log masuk
Saya akan kembali ke fail ini kemudian untuk menambah gaya, tetapi buat masa ini WordPress hanya perlu mengenali tema kanak-kanak.

Tunjukkan siaran terkini setiap kategoriBuat fail indeks

Memandangkan saya mahu halaman blog utama saya memaparkan catatan terkini dalam setiap kategori, saya akan mencipta fail index.php baharu dalam tema anak saya.

Buat fail index.php kosong

Mula-mula saya akan menyalin fail index.php dari 24 dan mengedit gelung dan perkara lain supaya kelihatan seperti ini: rrreee

Kenal pasti kategori

Langkah pertama ialah mengenal pasti kategori dalam blog anda. Kemudian buka teg <div id="content"> dan tambahkan kandungan berikut: rrreee 🎜Ini menggunakan fungsi get_categories() untuk mendapatkan senarai kategori dalam blog. Secara lalai ini akan diambil mengikut abjad dan tidak akan mengandungi sebarang kategori kosong. Ini berfungsi untuk saya jadi saya tidak akan menambah sebarang parameter tambahan. 🎜 🎜Saya kemudian menggunakan foreach ( $categories as $category ) {} untuk memberitahu WordPress supaya menjalankan setiap kategori secara bergilir-gilir dan menjalankan kod di dalam kurungan kerinting. Langkah seterusnya ialah membuat pertanyaan yang akan dijalankan terhadap setiap kategori. 🎜

Tentukan parameter pertanyaan

🎜Kini anda perlu menentukan parameter pertanyaan anda. Tambahkan kurungan kerinting dalam berikut: 🎜 rrreee 🎜Ini hanya akan mengambil satu siaran dalam kategori semasa. 🎜

Jalankan pertanyaan

🎜Seterusnya, masukkan pertanyaan menggunakan kelas WP_Query: 🎜 rrreee 🎜Ini akan mengeluarkan imej, tajuk dan petikan yang ditampilkan untuk setiap artikel, setiap satu disertakan dalam pautan. 🎜 🎜Jom lihat rupanya sekarang: 🎜 🎜Tunjukkan siaran terkini dalam setiap kategori🎜🎜Seperti yang anda lihat, Ada masalah. Halaman saya menunjukkan siaran terkini dalam setiap kategori, tetapi ia adalah siaran pendua kerana kadangkala siaran akan menjadi siaran terkini dalam berbilang kategori. Jom selesaikan masalah ini. 🎜

Elakkan siaran pendua

🎜Di atas baris yang anda tambahkan fungsi get_categories(), tambahkan baris berikut: 🎜 rrreee 🎜Ini akan mencipta tatasusunan kosong yang dipanggil $do_not_duplicate yang akan kami gunakan untuk menyimpan ID setiap output siaran dan kemudian semak untuk melihat sama ada ID bagi mana-mana siaran yang ditanya kemudian berada di tempat tatasusunan ini. 🎜 🎜Seterusnya, tambahkan baris baharu di bawah pilihan pertanyaan, jadi dua baris pertama kelihatan seperti ini: 🎜 rrreee 🎜Ini akan menambah ID siaran semasa pada tatasusunan $do_not_duplicate. 🎜 🎜Akhir sekali, tambahkan parameter baharu pada parameter pertanyaan untuk mengelak daripada mengeluarkan sebarang siaran dalam tatasusunan ini. Hujah anda sekarang kelihatan seperti ini: 🎜 rrreee 🎜Ini menggunakan parameter 'post__not_in' untuk mencari tatasusunan ID pos. 🎜 🎜Simpan fail index.php anda dan lihat halaman blog anda sekali lagi: 🎜 🎜Tunjukkan siaran terkini dalam setiap kategori🎜🎜Ini lebih baik! Kini siaran anda bukan lagi pendua. 🎜🎜🎜 🎜Tambah gaya🎜 🎜Pada masa ini, kandungannya agak tersebar, dengan imej yang ditampilkan berada di atas tajuk dan petikan jawatan. Mari tambahkan sedikit penggayaan untuk menjadikan imej terapung ke kiri. 🎜 🎜Dalam fail style.css tema anda, tambahkan yang berikut: 🎜 rrreee 🎜Kini kandungan lebih sesuai dengan halaman dan susun aturnya lebih baik: 🎜 🎜🎜🎜🎜Suaikan teknologi ini kepada jenis kandungan yang berbeza🎜🎜 🎜 🎜Anda boleh menyesuaikan teknik ini untuk mengendalikan jenis kandungan atau taksonomi yang berbeza. Contohnya: 🎜
  • Jika anda ingin menggunakan istilah klasifikasi tersuai dan bukannya kategori, anda boleh menggantikan get_categories() dengan get_terms() dan menukar 'cat' parameter pertanyaan untuk mencari istilah pengelasan. get_categories() 替换为 get_terms() 并更改 'cat' 查询参数来查找分类术语。
  • 如果您使用不同的帖子类型,您可以将类似的代码添加到模板文件中,以显示该帖子类型,替换 'post_type' => 'post' 参数您的查询参数与您的帖子类型。
  • 如果您想在博客主页面中创建一个单独的页面来显示给定分类的任何帖子类型的最新帖子,您可以创建一个分类存档模板并向其中添加此代码的改编版本。李>
  • 您可以更进一步,将此技术用于多个分类法或多个帖子类型,使用嵌套的 foreach 语句来运行多个循环。
  • 您可以将上面的代码添加到您的 single.php 页面,以便在帖子内容之后显示每个类别中最新帖子的链接。如果执行此操作,您需要将当前显示页面的 ID 添加到 $do_not_duplicate
  • Jika anda menggunakan jenis siaran yang berbeza, anda boleh menambah kod yang serupa pada fail templat anda untuk memaparkan jenis siaran itu, menggantikan parameter 'post_type' => 'post' dalam anda Parameter pertanyaan berkaitan dengan jenis siaran anda.

Jika anda ingin membuat halaman yang berasingan dalam halaman blog utama anda untuk memaparkan siaran terkini dari mana-mana jenis siaran untuk kategori tertentu, anda boleh membuat templat arkib kategori dan menambah versi kod yang disesuaikan padanya. 李>

Anda boleh melangkah lebih jauh dan menggunakan teknik ini dengan berbilang taksonomi atau berbilang jenis siaran, menggunakan penyataan foreach untuk menjalankan berbilang gelung.

Anda boleh menambah kod di atas pada halaman single.php anda untuk memaparkan pautan ke siaran terkini dalam setiap kategori selepas kandungan siaran. Jika anda melakukan ini, anda perlu menambah ID halaman yang sedang dipaparkan pada tatasusunan $do_not_duplicate. 🎜 🎜 🎜Ringkasan🎜 🎜Kadangkala boleh membantu untuk memaparkan siaran terbaharu pada blog anda dengan cara lain (bukannya hanya dalam susunan kronologi). Di sini saya menunjukkan teknik untuk memaparkan catatan terkini dalam setiap kategori di blog anda, memastikan catatan tidak diduplikasi dalam berbilang kategori. 🎜

Atas ialah kandungan terperinci Tunjukkan siaran terkini setiap kategori. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Algoritma pengekstrakan kata kunci dan contoh aplikasi yang dilaksanakan dalam Java Algoritma pengekstrakan kata kunci dan contoh aplikasi yang dilaksanakan dalam Java Jun 18, 2023 pm 12:14 PM

Algoritma pengekstrakan kata kunci dan contoh aplikasi yang dilaksanakan di Jawa Dengan kemunculan era Internet, data teks yang besar telah menyebabkan kesukaran yang besar bagi orang ramai untuk mendapatkan dan menganalisis Oleh itu, adalah perlu untuk menjalankan penyelidikan dan aplikasi teknologi pemprosesan bahasa semula jadi seperti pengekstrakan kata kunci . Pengekstrakan kata kunci merujuk kepada mengekstrak perkataan atau frasa daripada sekeping teks yang paling mewakili topik teks, memberikan sokongan untuk tugasan seperti pengelasan teks, perolehan semula dan pengelompokan. Artikel ini memperkenalkan beberapa algoritma pengekstrakan kata kunci dan contoh aplikasi yang dilaksanakan dalam Java. 1. Algoritma TF-IDF TF-IDF ialah a

Cara yang berkesan untuk melaksanakan penggunaan semula kod dalam fungsi Golang Cara yang berkesan untuk melaksanakan penggunaan semula kod dalam fungsi Golang Apr 12, 2024 pm 06:12 PM

Terdapat dua cara utama untuk mencapai penggunaan semula kod dalam Go: Fungsi: Merangkum tugas berulang dalam fungsi dan menggunakannya semula sepanjang projek. Pakej: Susun kod yang berkaitan ke dalam pakej, membenarkan kod digunakan semula di bahagian lain program.

Apakah faedah mengikuti konvensyen penamaan fungsi golang? Apakah faedah mengikuti konvensyen penamaan fungsi golang? May 04, 2024 am 11:00 AM

Faedah mengikuti konvensyen penamaan fungsi Golang ialah: memastikan penamaan fungsi yang konsisten dan meningkatkan kebolehbacaan. Meningkatkan kebolehramalan dan menjadikannya lebih mudah untuk memahami penggunaan fungsi. Menyokong penyiapan automatik IDE untuk menjimatkan masa. Memudahkan penyahpepijatan dan memudahkan pengasingan masalah.

Carta awan perkataan ECharts: cara memaparkan kata kunci data Carta awan perkataan ECharts: cara memaparkan kata kunci data Dec 18, 2023 am 09:00 AM

Carta awan perkataan ECharts: Cara memaparkan kata kunci data memerlukan contoh kod khusus Pengenalan: Dengan kemunculan era data besar, isu penting yang kami hadapi ialah cara mengekstrak maklumat berguna daripada data besar-besaran dengan berkesan. Pengekstrakan kata kunci adalah salah satu kaedah yang biasa digunakan. Apabila memaparkan kata kunci, gambar rajah awan perkataan ialah cara yang sangat intuitif dan artistik yang membolehkan orang ramai memahami dengan cepat ciri-ciri data dan kepentingan kata kunci sepintas lalu. Artikel ini akan memperkenalkan cara menggunakan ECharts untuk memaparkan gambar rajah awan perkataan dan menyediakan

Namakan semula fail menggunakan fungsi Namakan semula Go Namakan semula fail menggunakan fungsi Namakan semula Go Apr 08, 2024 pm 02:21 PM

Fungsi os.Rename dalam bahasa Go boleh menamakan semula fail atau direktori dengan mudah dan mengemas kini nama fail atau direktori tanpa kehilangan data. Ia memerlukan dua parameter: oldpath (laluan semasa) dan newpath (laluan baharu). Fungsi ini menimpa sasaran sedia ada dan hanya boleh menamakan semula fail atau direktori dalam sistem fail yang sama.

Bagaimana untuk melaksanakan fungsi pengekstrakan kata kunci ayat rawak Baidu Wenxin Yiyan dalam pembangunan PHP? Bagaimana untuk melaksanakan fungsi pengekstrakan kata kunci ayat rawak Baidu Wenxin Yiyan dalam pembangunan PHP? Aug 26, 2023 am 09:25 AM

Bagaimana untuk melaksanakan fungsi pengekstrakan kata kunci ayat rawak Baidu Wenxin Yiyan dalam pembangunan PHP? Baidu Wenxin Yiyan ialah ayat yang dipaparkan secara rawak yang sering digunakan pada halaman utama, halaman log masuk, dll. Fungsi ini juga digunakan dalam filem "Nama Anda". Fungsi pengekstrakan kata kunci boleh menjadikan ayat yang dipaparkan lebih relevan dengan kandungan laman web dan meningkatkan pengalaman membaca pengguna. Seterusnya, kami akan memperkenalkan cara menggunakan pembangunan PHP untuk mencapai fungsi ini. Pertama, kita perlu mendapatkan API Baidu Wenxinyiyan. Pada Baidu Open Cloud Platform (http

Terokai apakah komponen program bahasa C? Terokai apakah komponen program bahasa C? Feb 21, 2024 pm 08:21 PM

Bahasa C ialah bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dalam pembangunan perisian dan pengaturcaraan sistem. Ia direka bentuk sebagai bahasa tujuan umum, berorientasikan prosedur yang terkenal dengan kesederhanaan pembelajaran, kelajuan pelaksanaan yang pantas dan mudah alih yang tinggi. Bahasa C mempunyai komponen yang kaya, dan komponen ini bekerjasama antara satu sama lain untuk membentuk program yang lengkap. Dalam program bahasa C, unit paling asas ialah aksara dan pengecam. Aksara ialah unit terkecil yang membentuk teks program Ia boleh berupa huruf, nombor, simbol, dsb. Pengecam ialah nama yang terdiri daripada huruf, nombor dan garis bawah, menggunakan

Teknik pengoptimuman prestasi untuk pelaksanaan fungsi golang tersuai Teknik pengoptimuman prestasi untuk pelaksanaan fungsi golang tersuai Apr 26, 2024 pm 05:09 PM

Petua untuk menulis dan mengoptimumkan fungsi Golang tersuai adalah penting untuk meningkatkan prestasi aplikasi: caching hasil fungsi untuk mengelakkan pengiraan berganda. Gunakan concurrency untuk melaksanakan operasi mahal secara selari. Gunakan penunjuk untuk mengelakkan salinan atas struktur dan kepingan besar. Optimumkan gelung untuk mengelakkan pengisytiharan pembolehubah yang tidak perlu dan pembinaan gelung yang cekap. Gunakan saluran paip untuk pemprosesan selari.

See all articles