欢迎来到站长教程网!

PHP教程

当前位置: 主页 > 网络编程 > PHP教程

在文章列表里添加一列自定义字段

更新时间:2026-10-06 23:33:20|栏目:PHP教程|点击:152 次

把下面代码添加到主题的 functions.php 中:

年份:

/**
 * 在文章列表中添加自定义字段
 */
// 1. 在文章列表中添加"年份"列(放在标题后面)
add_filter('manage_post_posts_columns', function($columns) {
    $new_columns = array();
    foreach ($columns as $key => $value) {
        $new_columns[$key] = $value;
        if ($key === 'title') {  // 在"标题"列后面插入"年份"列
            $new_columns['movie_year'] = '年份';
        }
    }
    return $new_columns;
});
// 2. 填充"年份"列的数据
add_action('manage_post_posts_custom_column', function($column_key, $post_id) {
    if ($column_key === 'movie_year') {
        $year = get_post_meta($post_id, 'year', true);
        echo $year ? esc_html($year) : '-';
    }
}, 10, 2);
// 3. 让"年份"列支持排序
add_filter('manage_edit-post_sortable_columns', function($columns) {
    $columns['movie_year'] = 'movie_year';
    return $columns;
});
// 4. 处理排序逻辑
add_action('pre_get_posts', function($query) {
    if ( ! is_admin() || ! $query->is_main_query() ) {
        return;
    }
    $orderby = $query->get('orderby');
    if ( $orderby === 'movie_year' ) {
        $query->set('meta_key', 'year');
        $query->set('orderby', 'meta_value_num');
    }
});

国家:

// 1. 插入"国家"列
add_filter('manage_post_posts_columns', function($columns) {
$new_columns = array();
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key === 'title') {
$new_columns['movie_area'] = '国家';
}
}
return $new_columns;
});// 2. 填充数据(用 ACF 的 get_field)
add_action('manage_post_posts_custom_column', function($column_key, $post_id) {
if ($column_key === 'movie_area') {
$area = get_field('area', $post_id); // ACF 函数,能自动转成标签
if (is_array($area)) {
echo esc_html(implode(', ', $area));
} elseif (!empty($area)) {
echo esc_html($area);
} else {
echo '-';
}
}
}, 10, 2);

// 3. 支持排序
add_filter('manage_edit-post_sortable_columns', function($columns) {
$columns['movie_area'] = 'movie_area';
return $columns;
});

// 4. 排序逻辑
add_action('pre_get_posts', function($query) {
if ( ! is_admin() || ! $query->is_main_query() ) {
return;
}
$orderby = $query->get('orderby');
if ( $orderby === 'movie_area' ) {
$query->set('meta_key', 'area');
$query->set('orderby', 'meta_value');
}
});

临时只显示国家:

add_action('pre_get_posts', function($query) {
if ( ! is_admin() || ! $query->is_main_query() ) {
return;
}
// 如果没有手动选过筛选器,默认只显示香港
if (!isset($_GET['area_filter'])) {
$query->set('meta_key', 'area');
$query->set('meta_value', 'hk');
} elseif ($_GET['area_filter'] !== '') {
$query->set('meta_key', 'area');
$query->set('meta_value', sanitize_text_field($_GET['area_filter']));
}
});

上一篇:PHP中实现一个简易三角形的方法

栏    目:PHP教程

下一篇:PHP 7安装使用体验之性能大提升,兼容性强,扩展支

本文标题:PHP中实现九九乘法口诀表

本文地址:http://tp2.com/index.php?m=home&c=View&a=index&aid=172

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:88888888 | 邮箱:888petersds@gmail.com

Copyright © 2002-202X 某某站长教程网 版权所有 非商用版本粤ICP备xxxxxxxx号