实例:
以下实例是我们假设创建了一个自定义文章类型information。它的taxonomy为informations。那么,我们的短代码是显示出这个自定义文章类型里的文章的标题。
可以自定义的项目是,自定义文章的分类名称及显示数目。
使用方法,可以在指定位置按需求添加下面的任意一行。
// 示例用法: // [information_posts] // [information_posts post_term="my_term"] // [information_posts posts_to_show="3"] // [information_posts post_term="my_term" posts_to_show="3"]
代码,添加到functions.php文件内:
<?php
function recent_information_function($atts)
{
$atts = shortcode_atts(
array(
'post_term' => '',
'posts_to_show' => ''),
$atts,
'information_posts');
if (!empty($atts[post_term])) {
$term_slugs = sanitize_text_field($atts[post_term]);
} else { $terms = get_terms('informations');
$term_slugs = wp_list_pluck($terms, 'slug'); // 默认设置为所有自定义的分类
}
if (!empty($atts[posts_to_show])) {
$showposts = intval($atts[posts_to_show]);
} else { $showposts = '3'; // 默认显示3篇
}
global $informaiton_query;
$informaiton_query = new WP_Query(
array(
'post_type' => 'information',
'orderby' => 'date',
'order' => 'DESC',
'tax_query' => array(
array('taxonomy' => 'informations',
'field' => 'slug',
'terms' => $term_slugs,
),
),
'posts_per_page' => $showposts));
$inner = '';
if ($informaiton_query->have_posts()) {
while ($informaiton_query->have_posts()) {
$informaiton_query->the_post();
$return_string .= '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';}}
wp_reset_postdata();
return $return_string;
}
function register_shortcodes()
{
add_shortcode('information_posts', 'recent_information_function');
}
add_action('init', 'register_shortcodes');
关键函数:
add_shortcode()
shortcode_atts()
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。