WordPress 给后台分类添加一个input按钮设置为:推荐,并且输出分类列表

要在 WordPress 后台自定义文章类型的分类目录下添加推荐功能,你可以使用 category_add_form_fieldscategory_edit_form_fields 钩子来添加一个新的复选框字段,并使用 created_categoryedited_category 钩子在分类创建或更新时保存选定的值。

以下是示例代码:


// 添加复选框字段
function add_recommend_field() {
    ?>
    <div class="form-field">
        <label for="recommend"><input type="checkbox" name="recommend" id="recommend" value="1"> 设置为推荐</label>
    </div>
    <?php
}
add_action( 'category_add_form_fields', 'add_recommend_field' );

function edit_recommend_field( $term ) {
    $recommend = get_term_meta( $term->term_id, 'recommend', true );
    ?>
    <tr class="form-field">
        <th scope="row"><label for="recommend"><input type="checkbox" name="recommend" id="recommend" value="1"<?php checked( $recommend, '1' ); ?>> 设置为推荐</label></th>
    </tr>
    <?php
}
add_action( 'category_edit_form_fields', 'edit_recommend_field' );

// 保存复选框字段的值
function save_recommend_field( $term_id ) {
    if ( isset( $_POST['recommend'] ) ) {
        update_term_meta( $term_id, 'recommend', '1' );
    } else {
        update_term_meta( $term_id, 'recommend', '' );
    }
}
add_action( 'created_category', 'save_recommend_field' );
add_action( 'edited_category', 'save_recommend_field' );

要改成支持自定义文章类型下的分类把category_edit_form_fields中的category改成你的自定义分类名即可add_action( 'xxx_add_form_fields', 'add_recommend_field' );

在前台调用

<?php
                            // 获取已设置为推荐的分类
$recommended_categories = get_terms( array(
    'taxonomy' => 'category',
    'meta_key' => 'recommend',
    'meta_value' => '1',
) );

// 输出已设置为推荐的分类列表
if ( ! empty( $recommended_categories ) ) {
    echo '<ul>';
    foreach ( $recommended_categories as $category ) {
        $recommend = get_term_meta( $category->term_id, 'recommend', true );
        if ( $recommend === '1' ) {
            echo '<li><a href="' . get_term_link( $category ) . '">' . $category->name . '</a></li>';
        }
    }
    echo '</ul>';
}
?>

自定义分类目录

add_action( 'circle_category_add_form_fields', 'add_featured_field', 10, 2 );
add_action( 'circle_category_edit_form_fields', 'edit_featured_field', 10, 2 );
add_action( 'edited_circle_category', 'save_featured_field', 10, 2 );
add_action( 'create_circle_category', 'save_featured_field', 10, 2 );

function add_featured_field( $taxonomy ) {
    ?>
    <div class="form-field term-group">
        <label for="recommend">
            <input type="checkbox" name="recommend" id="recommend" value="1">
            <?php _e('Set as featured', 'textdomain'); ?>
        </label>
    </div>
    <?php
}

function edit_featured_field( $term, $taxonomy ) {
    $recommend = get_term_meta( $term->term_id, 'recommend', true );
    ?>
    <tr class="form-field term-group-wrap">
        <th scope="row">
            <label for="recommend"><?php _e( 'Set as featured', 'textdomain' ); ?></label>
        </th>
        <td>
            <input type="checkbox" name="recommend" id="recommend" value="1" <?php checked( $recommend, '1' ); ?>>
        </td>
    </tr>
    <?php
}

function save_featured_field( $term_id, $tt_id ) {
    if ( isset( $_POST['recommend'] ) ) {
        update_term_meta( $term_id, 'recommend', '1' );
    } else {
        delete_term_meta( $term_id, 'recommend' );
    }
}

前端调用

<?php
// 定义get_terms函数的参数
$args = array(
    'taxonomy' => 'circle_category',
    'meta_key' => 'recommend',
    'meta_value' => '1',
);

// 获取已设置为推荐的分类目录列表
$featured_terms = get_terms( $args );

// 循环遍历每个推荐分类
foreach ( $featured_terms as $term ) {
    // 显示分类名称和链接
    echo '<li><a href="' . get_term_link( $term ) . '">' . $term->name . '</a></li>';
}

?>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值