Rumah > Artikel > pembangunan bahagian belakang > Lepaskan kuasa tag bersyarat untuk mengecas blog anda
Teg bersyarat ialah salah satu daripada banyak struktur hebat yang ada pada WordPress yang boleh membantu kami menjadikan pembangunan WordPress lebih mudah. Dalam artikel ini, kita akan mempelajari beberapa daripadanya dan menggunakannya dalam fungsi sampel, seperti mengalih keluar kandungan daripada halaman ralat atau menukar ikon halaman pentadbir.
Ia pada asasnya adalah "soalan ya-atau-tidak": apabila anda menggunakannya, ia hanya membalas BETUL atau SALAH. Kami menggunakannya dalam pernyataan if
- jika pernyataan itu BENAR atau SALAH, kami boleh memproses kod kami berdasarkan jawapan. if
语句中使用它们 - 如果语句为 TRUE 或 FALSE,我们可以根据答案处理我们的代码。
您可以在 WordPress Codex 中查看所有条件标签。
现在,让我们进入有趣的部分!本文中有十个使用条件标签的很棒的函数。
is_front_page()
从主页向访问者打招呼可能会让访问者感到愉快,或者您可以对定期维护发出警告,或者可以显示一个可怕的弹出广告。无论您需要做什么,都可以按照以下步骤操作:
首先,您需要在此处获取 Colorbox jQuery 插件。从“colorbox/colorbox”文件夹和colorbox.css获取colorbox.min.js(以及相应的“images”文件夹)复制到主题文件夹内的“colorbox”文件夹。
然后,您需要创建一个 colorbox.load.js 文件才能加载弹出窗口。也将此文件放入“colorbox”文件夹中:
jQuery(document).ready(function($) { var $popup = $("#mypopup"); $.colorbox({href:$popup}); });
之后,将弹出 HTML 代码(CSS ID 为“mypopup
”)放入主题的 index.php 文件中,并将其隐藏在 style.css strong> 文件(带有“#mypopup {display:none;}
”)。
function front_popup() { if(is_front_page()) { // load colorbox.min.js wp_enqueue_script('colorbox-js', get_template_directory_uri().'/colorbox/colorbox.min.js',array('jquery')); // load colorbox.load.js wp_enqueue_script('colorbox-load-js', get_template_directory_uri().'/colorbox/colorbox.load.js',array('colorbox-js')); // load colorbox.css wp_enqueue_style('colorbox-css', get_template_directory_uri().'/colorbox/colorbox.css'); } } add_action('wp_head','front_popup');
将其粘贴到您的 functions.php 文件中,然后就可以开始了!
注意:为了使弹出窗口消失,您需要在弹出窗口中添加一个链接。这样就可以了:
<a href="javascript:$.colorbox.close();">Close</a>
is_page()
在特定页面中包含额外的 CSS 和 JS 代码
您可能需要为特定页面加载一些外部 JavaScript 或 CSS 文件 - 例如您的“关于”页面或产品的下载页面。是的,您也可以将它们包含在您的内容中,但这不是一个好的做法。这是好的做法:
function extra_assets() { if(is_page(123)) { // '123' is the ID of the page we are checking for wp_enqueue_script('my-script', get_template_directory_uri().'/some/path/in/your/theme/folder/script.js'); wp_enqueue_style('my-style', get_template_directory_uri().'/some/path/in/your/theme/folder/style.css'); } } add_action('wp_head','extra_assets');
与第一个示例一样,将其添加到您的 functions.php 文件中就足够了。 (不要忘记将“123
”号码更改为您页面的 ID!)
in_category()
特殊类别帖子的“更多此类别”部分
这并不总是必要的,但您可能需要某个类别的“更多来自此类别”部分(但不是其他类别)。假设您有一个“新闻”类别,而其他类别不适合我们要创建的部分。条件标签 in_category()
将帮助我们:
function more_from_category($cat_ID) { if(in_category($cat_ID) { $posts = get_posts('numberposts=5&category='.$cat_ID); $output = '<h3>More from this category</h3>'; $output.= '<ul>'; foreach($posts as $post) { $output.= '<li><a href="'.get_permalink().'">'.get_the_title.'</a></li>'; } wp_reset_query(); $output.= '</ul>'; echo $output; } }
根据需要构建此函数并将其添加到您的 functions.php 文件中。然后,转到 single.php 并将代码 (<?php more_from_category(123); ?>
) 放置在您希望该部分出现的位置。您需要考虑的只是将代码放置在循环内。仅此而已!
is_preview()
提醒您自己(或您的作者)您仍在预览页面上
这不是必须的(毕竟,我们只是学习这些条件标签的示例),但提醒您自己(或您的作者)显示的页面是“预览”页面可能是个好主意。将其添加到主题的 functions.php 文件中:
function preview_warning() { if(is_preview()) { echo '<div id="preview-warning">Remember, you\'re still on the Preview page!<div>'; } } add_action('the_content','preview_warning');
当然,这还不够 - 您需要编辑 style.css 来为警告文本提供形状。像这样的事情:
#preview-warning { background:#800; line-height:50px; font-size:30px; font-weight:bold; text-align:center; position:fixed; bottom:0; }
给你!
is_404()
从 404 页面中删除某些元素
这是所有技巧中最简单的一个。我认为它甚至不需要解释 - 只需用下面的代码包装那些“某些元素”(您不想在错误页面上显示的内容,例如广告),然后就可以开始了! p>
if(!is_404()) { // Here comes the "certain elements". It's that easy. Seriously. }
has_excerpt()
显示自动生成的摘录
我只是讨厌自动生成的摘录。所以我删除了它们——使用 Codex 中实际提供的代码:
function full_excerpt() { if (!has_excerpt()) { echo ''; } else { echo get_the_excerpt(); } }
将其添加到 functions.php 文件中,然后您所要做的就是将 the_excerpt()
的实例更改为 full_excerpt()
Anda boleh melihat semua teg bersyarat dalam WordPress Codex. 🎜🎜Sekarang, mari kita ke bahagian yang menyeronokkan! Terdapat sepuluh fungsi hebat yang menggunakan tag bersyarat dalam artikel ini. 🎜 🎜 🎜 Fungsi 1. Paparkan mesej pop timbul pada halaman utama
is_front_page()
🎜
🎜 Memberi salam kepada pelawat anda dari halaman utama mungkin menggembirakan mereka, atau anda mungkin memberi amaran tentang penyelenggaraan berjadual, atau anda mungkin memaparkan iklan pop timbul yang menakutkan. Tidak kira apa yang anda perlu lakukan, berikut adalah langkah-langkahnya: 🎜
🎜Pertama, anda perlu mendapatkan pemalam Colorbox jQuery di sini. Dapatkan colorbox.min.js daripada folder "colorbox/colorbox" dan colorbox.css (dan "imeja" yang sepadan strong> folder) ke folder "kotak warna" dalam folder tema. 🎜
🎜Kemudian, anda perlu mencipta fail colorbox.load.js untuk memuatkan pop timbul. Letakkan juga fail ini ke dalam folder "kotak warna": 🎜
if(is_date()) { // If your theme uses h2 headings for post titles, use h2. If it uses h1, use h1. echo '<h2>'.the_title().'</h2>'; } else { // ... // The original code inside The Loop // ... }🎜Selepas itu, letakkan kod HTML pop timbul (CSS ID ialah "
mypopup
") dalam fail index.php tema dan sembunyikannya dalam style.css strong> fail (dengan "#mypopup {display:none;}
"). 🎜
function admin_favicon() { if(is_admin()) { echo '<link rel="shortcut icon" href="'.get_bloginfo('url').'/adminfav.ico" />'; } } add_action('admin_head','admin_favicon');🎜Tampalkannya ke dalam fail functions.php anda dan anda boleh pergi! 🎜 🎜Nota: Untuk menghilangkan pop timbul, anda perlu menambah pautan pada pop timbul. Ini akan melakukannya: 🎜
if(has_post_thumbnail()) { the_post_thumbnail(); } else { echo '<img src="'.get_template_directory_uri().'/images/default-thumb.jpg" alt="'.get_the_title().'" class="default-thumb" />'; }🎜 🎜 Ciri 2. Gunakan
is_page()
untuk memasukkan kod CSS dan JS tambahan dalam halaman tertentu
🎜
🎜Anda mungkin perlu memuatkan beberapa fail JavaScript atau CSS luaran untuk halaman tertentu - seperti halaman Perihal anda atau halaman muat turun produk. Ya, anda boleh memasukkannya dalam kandungan anda juga, tetapi ini bukan amalan yang baik. Ini adalah amalan yang baik: 🎜
function member_menu() { if(is_user_logged_in()) { echo '<div class="member-menu"><h2>Member Menu</h2><ul><li><a href="#">First Menu Item</a></li><li><a href="#">Second Menu Item</a></li><li><a href="#">Third Menu Item</a></li></ul></div>'; } }🎜Seperti contoh pertama, sudah cukup untuk menambahkan ini pada fail functions.php anda. (Jangan lupa tukar nombor “
123
” kepada ID halaman anda!) 🎜
🎜
🎜
Fungsi 3. in_category()
bahagian "Lagi dalam kategori ini" untuk siaran kategori khas
🎜
🎜Ini tidak selalu diperlukan, tetapi anda mungkin mahukan bahagian "Lagi daripada ini" untuk kategori tertentu (tetapi bukan yang lain). Katakan anda mempunyai kategori "Berita" dan kategori lain tidak sesuai dengan bahagian yang ingin kami buat. Teg bersyarat in_category()
akan membantu kami: 🎜
rrreee
🎜Bina fungsi ini mengikut keperluan dan tambahkannya pada fail functions.php anda. Kemudian, pergi ke single.php dan letakkan kod (<?php more_from_category(123); ?>
) di mana anda mahu bahagian ini dipaparkan. Apa yang anda perlu fikirkan ialah meletakkan kod di dalam gelung. Itu sahaja! 🎜
🎜
🎜
Ciri 4. Gunakan is_preview()
untuk mengingatkan diri anda (atau pengarang anda) bahawa anda masih berada di halaman pratonton
🎜
🎜Ini tidak diperlukan (lagipun, kami baru mempelajari contoh teg bersyarat ini), tetapi mungkin idea yang baik untuk mengingatkan diri anda (atau pengarang anda) bahawa halaman yang ditunjukkan ialah halaman "pratonton". Tambahkan ini pada fail functions.php tema anda: 🎜
rrreee
🎜Sudah tentu, itu tidak mencukupi - anda perlu mengedit style.css untuk memberikan teks amaran satu bentuk. Perkara seperti ini: 🎜
rrreee
🎜Inilah! 🎜
🎜
🎜
Fungsi 5. Gunakan is_404()
untuk mengalih keluar elemen tertentu daripada halaman 404
🎜
🎜Ini adalah helah yang paling mudah. Saya rasa ia tidak memerlukan penjelasan - cuma bungkus "elemen tertentu" (perkara yang anda tidak mahu paparkan pada halaman ralat, seperti iklan) dengan kod di bawah dan anda boleh pergi! p>
rrreee
🎜
🎜
Fungsi 6. Tidak lagi menggunakan has_excerpt()
untuk memaparkan petikan yang dijana secara automatik
🎜
🎜Saya hanya benci coretan yang dijana secara automatik. Jadi saya mengeluarkannya - menggunakan kod sebenar yang disediakan dalam Codex: 🎜
rrreee
🎜Tambahkan ini pada fail functions.php dan kemudian apa yang anda perlu lakukan ialah menukar contoh the_excerpt()
kepada full_excerpt()
. 🎜
is_date()
仅列出基于日期的档案中的帖子标题(而不是完整帖子)
有时,在某些存档页面(例如基于日期的存档)上仅列出标题就足够了。因此,例如条件标签 is_date()
,我们将删除循环中除标题之外的内容。
这有点棘手,因为每个主题中的 archive.php 文件都不同。 (如果您的主题中有 date.php 文件,您应该编辑该文件。)在代码中查找 The Loop 并使用以下内容更改 The Loop 内的代码:
if(is_date()) { // If your theme uses h2 headings for post titles, use h2. If it uses h1, use h1. echo '<h2>'.the_title().'</h2>'; } else { // ... // The original code inside The Loop // ... }
is_admin()
如果您喜欢使用 20 个打开的选项卡(全部用于您的博客),那么此技巧可能会非常方便。只需稍微编辑您的网站图标并将其另存为 adminfav.ico - 例如,我的管理面板网站图标只是我原始网站图标的红色版本。
无论如何,您可以这样做:
function admin_favicon() { if(is_admin()) { echo '<link rel="shortcut icon" href="'.get_bloginfo('url').'/adminfav.ico" />'; } } add_action('admin_head','admin_favicon');
has_post_thumbnail()
这是一个好的主题必须具备的条件。如果您的主题中有任何显示特色图像缩略图的部分,您应该将 the_post_thumbnail()
函数替换为以下代码:
if(has_post_thumbnail()) { the_post_thumbnail(); } else { echo '<img src="'.get_template_directory_uri().'/images/default-thumb.jpg" alt="'.get_the_title().'" class="default-thumb" />'; }
这样,您就可以保持主题外观的一致性。
is_user_logged_in()
为您的登录会员显示一个特殊菜单
如果您在 WordPress 中使用会员系统并拥有会员,您可能需要为您登录的会员创建一个特殊的菜单。方法如下:
function member_menu() { if(is_user_logged_in()) { echo '<div class="member-menu"><h2>Member Menu</h2><ul><li><a href="#">First Menu Item</a></li><li><a href="#">Second Menu Item</a></li><li><a href="#">Third Menu Item</a></li></ul></div>'; } }
这是一个标准的“标题和列表”代码,您应该使用该代码使其像您的侧边栏 div
s 然后放置代码 <?php member_menu(); ?>
在主题的 sidebar.php 文件中。
此外,这只是一个示例,但理想情况下您可以在此处使用 WordPress 自定义菜单和 wp_nav_menu()
。一项标准和一项会员,然后您可以继续从 WordPress 管理仪表板管理它们。您可以在此处阅读有关 wp_nav_menu()
函数的更多信息。
这是我最喜欢的 10 个使用条件标签的想法。你的呢?如果您有任何要分享的内容,请在下面发表评论,以便我们可以扩展这篇文章并提供更多想法!
Atas ialah kandungan terperinci Lepaskan kuasa tag bersyarat untuk mengecas blog anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!