关于 wordpress:添加按自定义字段过滤自定义帖子类型的功能?

Add ability to filter custom post type by custom fields?

我同时使用 WordPress 的"类型"和"高级自定义字段"插件。使用"类型"我创建了一个自定义帖子,当您单击"添加新"时,您通过填写我使用"高级自定义字段"创建的文本区域和下拉列表来创建一个新帖子。

目前,当我在侧边栏中单击我的帖子时,有一个过滤器可以按添加日期对我的子帖子进行排序(抱歉,缺乏正确的术语;我是 wordpress 的新手)。我还希望能够按我在下拉框中创建的一些自定义字段进行排序。

此外,还有两列标记为"标题"和"日期"。可以多加几个吗?


编写 PHP

您可以按照高级自定义字段的开发人员 (Elliot Condon) 在此博文中的概述编写一些 PHP。

从帖子中获取的以下代码将在管理屏幕中显示图像和真/假字段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function my_page_columns($columns)
{
    $columns = array(
        'cb'        => '<input type="checkbox" />',
        'thumbnail' =>  'Thumbnail',
        'title'     => 'Title',
        'featured'  => 'Featured',
        'author'    =>  'Author',
        'date'      =>  'Date',
    );
    return $columns;
}

function my_custom_columns($column)
{
    global $post;
    if($column == 'thumbnail')
    {
        echo wp_get_attachment_image( get_field('page_image', $post->ID), array(200,200) );
    }
    elseif($column == 'featured')
    {
        if(get_field('featured'))
        {
            echo 'Yes';
        }
        else
        {
            echo 'No';
        }
    }
}

add_action("manage_pages_custom_column","my_custom_columns");
add_filter("manage_edit-page_columns","my_page_columns");

为了能够对真/假列进行排序,您可以使用帖子中概述的以下代码:

1
2
3
4
5
6
7
function my_column_register_sortable( $columns )
{
    $columns['featured'] = 'featured';
    return $columns;
}

add_filter("manage_edit-page_sortable_columns","my_column_register_sortable" );

使用插件

或者,无需任何 PHP 编程,您可以使用 Codepress 插件的 Admin Columns 执行此操作。