要给WordPress自定义文章类型添加文章置顶功能选项,你可以按照以下步骤进行操作。在这个示例中,我们将创建一个名为"books"的自定义文章类型,并添加一个文章置顶的复选框选项。
步骤1:创建自定义文章类型
首先,在你的主题或自定义插件中注册自定义文章类型。你可以将以下代码添加到主题的functions.php
文件或创建一个自定义插件:
function custom_register_books_post_type() {
$labels = array(
'name' => '图书',
'singular_name' => '图书',
'add_new' => '添加新书',
'add_new_item' => '添加新书',
'edit_item' => '编辑书',
'new_item' => '新书',
'view_item' => '查看书',
'search_items' => '搜索书',
'not_found' => '未找到书',
'not_found_in_trash' => '回收站中未找到书',
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashiconsbook',
'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'customfields'),
);
register_post_type('books', $args);
}
add_action('init', 'custom_register_books_post_type');
这段代码将创建一个名为"books"的自定义文章类型。
步骤2:添加文章置顶选项
接下来,你需要为自定义文章类型添加文章置顶的复选框选项。你可以使用add_meta_box
函数来实现这一点。将以下代码添加到你的主题的functions.php
文件或自定义插件中:
function custom_add_top_checkbox_meta_box() {
add_meta_box(
'custom_top_checkbox',
'文章置顶',
'custom_top_checkbox_callback',
'books', // 替换为你的自定义文章类型名称
'side',
'default'
);
}
function custom_top_checkbox_callback($post) {
$value = get_post_meta($post>ID, '_custom_top_checkbox', true);
?>
<label for="custom_top_checkbox">
<input type="checkbox" name="custom_top_checkbox" id="custom_top_checkbox" <?php checked($value, 'on'); ?> />
将此文章置顶
</label>
<?php
}
function custom_save_top_checkbox($post_id) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return $post_id;
if (isset($_POST['custom_top_checkbox'])) {
update_post_meta($post_id, '_custom_top_checkbox', 'on');
} else {
delete_post_meta($post_id, '_custom_top_checkbox');
}
}
add_action('add_meta_boxes', 'custom_add_top_checkbox_meta_box');
add_action('save_post', 'custom_save_top_checkbox');
上述代码将在自定义文章类型编辑页面的侧边栏添加一个复选框,允许你将文章置顶。
步骤3:显示置顶文章
最后,你可以在你的主题模板中修改文章查询来显示置顶文章。例如,你可以在你的自定义文章类型循环中添加以下代码来将置顶文章显示在顶部:
$args = array(
'post_type' => 'books', // 替换为你的自定义文章类型名称
'meta_key' => '_custom_top_checkbox',
'meta_value' => 'on',
'orderby' => 'meta_value',
'order' => 'DESC',
);
$top_query = new WP_Query($args);
if ($top_query>have_posts()) {
while ($top_query>have_posts()) {
$top_query>the_post();
// 在这里显示置顶文章
}
wp_reset_postdata();
}
// 此处继续显示普通文章
这将在文章查询中将置顶文章显示在顶部。
通过上述步骤,你可以给WordPress自定义文章类型添加文章置顶功能选项。请确保根据你的需求调整代码中的文章类型名称和其他参数。