首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]WordPress非插件实现文章分类自定义排序

发布于 2024-11-04 20:34:10
0
181

要在WordPress中实现文章分类的自定义排序,您可以通过以下步骤来实现:1、为文章分类添加自定义排序字段:首先,在您的主题的functions.php文件中添加以下代码,为文章分类添加一个自定义排...

要在WordPress中实现文章分类的自定义排序,您可以通过以下步骤来实现:

1、为文章分类添加自定义排序字段:

首先,在您的主题的functions.php文件中添加以下代码,为文章分类添加一个自定义排序字段。

// 添加自定义排序字段
function custom_taxonomy_ordering() {
    add_action('category_add_form_fields', 'add_order_field_to_taxonomy');
    add_action('category_edit_form_fields', 'edit_order_field_in_taxonomy');
}
add_action('init', 'custom_taxonomy_ordering');

function add_order_field_to_taxonomy() {
    ?>
    <div class="form-field">
        <label for="term_order">排序</label>
        <input type="text" name="term_order" id="term_order" value="">
    </div>
    <?php
}

function edit_order_field_in_taxonomy($term) {
    $term_order = get_term_meta($term->term_id, 'term_order', true);
    ?>
    <tr class="form-field">
        <th scope="row" valign="top">
            <label for="term_order">排序</label>
        </th>
        <td>
            <input type="text" name="term_order" id="term_order" value="<?php echo $term_order; ?>">
        </td>
    </tr>
    <?php
}

// 保存自定义排序字段的值
function save_taxonomy_ordering($term_id) {
    if (isset($_POST['term_order'])) {
        update_term_meta($term_id, 'term_order', sanitize_text_field($_POST['term_order']));
    }
}
add_action('created_category', 'save_taxonomy_ordering');
add_action('edited_category', 'save_taxonomy_ordering');

2、在文章分类页面上显示自定义排序字段:

您可以在文章分类页面上显示自定义排序字段,以便您可以为每个分类设置排序值。在您的主题的functions.php文件中添加以下代码:

// 显示自定义排序字段
function display_custom_taxonomy_ordering($term) {
    $term_order = get_term_meta($term->term_id, 'term_order', true);
    ?>
    <tr class="form-field">
        <th scope="row" valign="top">
            <label for="term_order">排序</label>
        </th>
        <td>
            <input type="text" name="term_order" id="term_order" value="<?php echo $term_order; ?>">
        </td>
    </tr>
    <?php
}
add_action('category_edit_form_fields', 'display_custom_taxonomy_ordering');

// 保存自定义排序字段的值
function save_taxonomy_ordering($term_id) {
    if (isset($_POST['term_order'])) {
        update_term_meta($term_id, 'term_order', sanitize_text_field($_POST['term_order']));
    }
}
add_action('created_category', 'save_taxonomy_ordering');
add_action('edited_category', 'save_taxonomy_ordering');

3、根据自定义排序字段对文章分类进行排序:

最后,在需要显示文章分类的地方,您可以使用以下代码来获取文章分类并根据自定义排序字段对其进行排序。

$terms = get_terms(array(
    'taxonomy' => 'category',
    'orderby' => 'meta_value_num',
    'meta_key' => 'term_order'
));

foreach ($terms as $term) {
    echo $term->name;
}

通过以上步骤,您可以在WordPress中实现文章分类的自定义排序,而不需要借助插件。

请根据您的需求和主题进行进一步的定制和优化。

希望这些代码能帮助您实现文章分类的自定义排序功能!

评论
一个月内的热帖推荐
鸟云
Lv.1普通用户

275

帖子

20

小组

225

积分

赞助商广告
站长交流