如何解决通过 WordPress 管理区域中的自定义字段过滤自定义帖子
我有一个自定义帖子类型:course_payment
在我的管理员中,我创建了几列
其中一个拉取另一个具有连接的帖子类型数组(“课程”)
到我的帖子类型course_payment
我希望能够在上面添加过滤器以按“课程”对“课程付款”进行排序
我设法创建了 2 个函数:
- 用于添加上面的选择
- 用于过滤器操作
1 工作正常,但过滤器本身不工作
它将我重定向到“结果”页面,但结果为空
这是我的代码:
function lam_filter_courses($post_type,$which) {
if ($post_type === 'course_payment') {
$selected = $_GET['course'] ? $_GET['course'] : '';
echo '<select name="course" style="float:none;margin-right:15px;">';
echo '<option value="">' . __( 'Filter by Course','lam' ) . '...</option>';
$courses = get_posts( [ 'post_type' => 'course','numberposts' => - 1 ] );
foreach ( $courses as $o ) {
$selected = (int) $o->ID === (int) $selected ? ' selected="selected"' : '';
echo '<option value="' . $o->ID . '"' . $selected . '>' . $o->post_title . '</option>';
}
echo '</select>';
}
}
add_action('restrict_manage_posts','lam_filter_courses',10,2);
function filter_payments_by_course( $query ) {
global $typenow;
if ( $typenow === 'course_payment' && is_admin() ) {
$course = $_GET['course'] ? $_GET['course'] : null;
if ( $course ) {
$meta_query = [
[
'key' => 'course_id','value' => (int)$course,],];
$query->set( 'meta_key','course_id' );
$query->set( 'meta_query',$meta_query );
}
}
}
add_action( 'pre_get_posts','filter_payments_by_course',1 );
第二个操作 filter_payments_by_course 不起作用 请指教
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。