Rumah > hujung hadapan web > tutorial js > Bagaimana untuk melaksanakan halaman sebelumnya dan halaman seterusnya halaman tunggal WordPress [dengan kod]_kemahiran javascript

Bagaimana untuk melaksanakan halaman sebelumnya dan halaman seterusnya halaman tunggal WordPress [dengan kod]_kemahiran javascript

WBOY
Lepaskan: 2016-05-16 15:11:05
asal
1760 orang telah melayarinya

Halaman artikel WordPress mempunyai fungsi untuk melaksanakan artikel sebelumnya dan seterusnya, kami ingin melaksanakan fungsi halaman sebelumnya dan seterusnya dalam satu halaman halaman.php Fungsi previous_post_link() dan next_post_link() belum tersedia. Ia memenuhi keperluan saya sepenuhnya, jadi saya menulis fungsi itu sendiri untuk melaksanakannya.
Halaman ini mempunyai fungsi hierarki Keperluan ialah terdapat pautan sebelumnya dan seterusnya antara sub-halaman yang diisih mengikut susunan menu, seperti:

Tema (halaman induk)
---- zBench (halaman kanak-kanak 1)
---- zBorder (halaman kanak-kanak 2)
---- zSofa (kanak-kanak muka surat 3)

Jika halaman semasa ialah zBorder, maka pautan sebelumnya mestilah zBench dan pautan seterusnya mestilah zSofa.

把下面函数代码放入 functions.php(注:函数随手写的,可能不够精简)

/**
* get subpage previous/next page link by zwwooooo
*/
function subpage_nav_link($prevText='', $nextText='') {
global $post;
if ( !$post->post_parent ) return null; //如果不是子页面返回Null
$args = array(
'sort_order' => 'ASC',
'sort_column' => 'menu_order',
'child_of' => $post->post_parent,
'post_type' => 'page'
);
$pages = get_pages($args);
$num = count($pages);
$i = 0;
$index = -1;
foreach ($pages as $page) {
if ($page->ID == $post->ID) {
$index = $i;
break;
}
++$i;
}
if ($i == 0) {
$prev = '';
$next = $pages[$index+1];
} elseif ($i == $num-1) {
$prev = $pages[$index-1];
$next = '';
} else {
$prev = $pages[$index-1];
$next = $pages[$index+1];
}
if ($prev) {
if ($prevText) {
if ( substr_count($prevText, '%title') > 0 ) {
$explode = explode('%title', $prevText);
$prevText = $explode[0] . get_the_title($prev->ID) . $explode[1];
}
} else {
$prevText = get_the_title($prev->ID);
}
$prevlink = '<a class="previous-page-link" href="' . get_page_link($prev->ID). '">' . $prevText . '</a>';
}
if ($next) {
if ($nextText) {
if ( substr_count($nextText, '%title') > 0 ) {
$explode = explode('%title', $nextText);
$nextText = $explode[0] . get_the_title($next->ID) . $explode[1];
}
} else {
$nextText = get_the_title($next->ID);
}
$nextlink = '<a class="next-page-link" href="' . get_page_link($next->ID). '">' . $nextText . '</a>';
}
return array($prevlink, $nextlink);
}
Salin selepas log masuk

[Fungsi]

subhalaman_nav_link($prevText, $nextText)

[Parameter]

$prevText: Teks pautan untuk artikel sebelumnya Jika kosong, lalai ialah tajuk halaman
$nextText: Teks pautan untuk artikel seterusnya Apabila kosong, ia lalai kepada tajuk halaman

Contohnya: tema umum adalah untuk memasukkan kod panggilan dalam gelung gelung page.php (Saya tidak tahu, betul-betul di bawah the_content();)

Salin kod Kod adalah seperti berikut:

jika ( function_exists('subpage_nav_link') ) {
jika ($subpage_nav_link = subpage_nav_link() ) {
echo $subpage_nav_link[0]; //Pautan artikel (halaman) sebelumnya
echo $subpage_nav_link[1]; //Pautan artikel (halaman) seterusnya
}
}
?>

Nota: Anda boleh menggunakan if (!$subpage_nav_link[0]) untuk menentukan sama ada terdapat artikel sebelumnya, dan begitu juga jika (!$subpage_nav_link[1]) untuk menentukan sama ada terdapat artikel seterusnya.

PS: $prevText dan $nextText juga menyokong gabungan aksara, seperti subpage_nav_link('oo %title xx', '') Dalam kes ini, artikel pautan artikel sebelumnya akan menjadi "oo page name xx"


Satu lagi artikel praktikal: Melaksanakan halaman artikel wordpress untuk memanggil artikel sebelumnya/seterusnya dalam kategori yang sama

Kod fungsi yang disediakan oleh wordpress untuk memaparkan artikel sebelum dan seterusnya dipanggil mengikut urutan penerbitan Templat novel wordpress yang saya buat beberapa hari lepas, kerana setiap kategori digunakan untuk menambah novel "Novel wordpress pertama Blog Bar. " Templat tema laman web "wpnovel", jika tidak sesuai untuk memaparkan artikel sebelumnya dan seterusnya dalam susunan ini, ia adalah cara yang betul untuk membenarkan halaman artikel memaparkan artikel sebelumnya dan seterusnya di bawah kategori yang sama. WordPress berkuasa dan boleh sentiasa memuaskan idea pengguna , kod fungsi yang berkaitan ditemui melalui carian.

Kod dipanggil terus secara lalai


Apabila artikel itu adalah artikel pertama atau terakhir, jurang akan dipaparkan, tetapi jurang boleh diisi dengan menambah pertimbangan


Selepas ujian, walaupun artikel di bawah kategori yang sama dipaparkan, artikel pertama dan artikel terakhir tidak akan memaparkan mesej gesaan yang sepadan "Sudah artikel terakhir" dan "Sudah artikel terakhir". Selagi anda menentukan ID kategori artikel dalam fungsi get_previous_post(), kod tersebut akan berkesan sepenuhnya.

Berikut ialah kod lengkap:

Salin kod Kod adalah seperti berikut:

$categories = dapatkan_kategori_();
$categoryIDS = array();
foreach ($kategori sebagai $kategori) {
array_push($categoryIDS, $category->term_id);
}
$categoryIDS = implode(",", $categoryIDS);
?>



Buka halaman artikel single.php dalam direktori tema, tambah kod di mana anda mahu ia dipaparkan, dan simpan fail.

Kaedah di atas untuk melaksanakan halaman sebelumnya dan halaman seterusnya halaman tunggal WordPress [dengan kod] adalah semua kandungan yang dikongsi oleh editor saya harap ia dapat memberi anda rujukan, dan saya harap anda akan menyokong Script Home.

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan