Статьи

Совет: добавьте пользовательские столбцы на экранах управления WordPress

Этот быстрый совет объясняет, как добавить пользовательский столбец на экранах управления вашего блога WordPress.


Вот некоторые фрагменты кода, которые можно использовать для настройки столбцов на экранах управления.

Вы можете скопировать и вставить их в файл functions.php вашей темы или скачать плагин, прикрепленный к этому сообщению.


Сначала давайте определим некоторые вспомогательные функции, которые мы позже подключим к WordPress. Первые два добавляют новый столбец (или два столбца, или удаляют столбец по умолчанию), в то время как другие отображают содержимое столбца. В этих примерах мы предполагаем, что вы уже активировали фильм « Тип поста» и жанр « Таксономия пользователя». О создании пользовательских типов записей и таксономий вы можете прочитать в предыдущей статье.

01
02
03
04
05
06
07
08
09
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
function ST4_columns_head($defaults) {
    $defaults[‘first_column’] = ‘First Column’;
 
    /* ADD ANOTHER COLUMN (OPTIONAL) */
    // $defaults[‘second_column’] = ‘Second Column’;
 
    /* REMOVE DEFAULT CATEGORY COLUMN (OPTIONAL) */
    // unset($defaults[‘categories’]);
 
    /* TO GET DEFAULTS COLUMN NAMES: */
    // print_r($defaults);
 
    return $defaults;
}
 
// ONLY FOR movie CUSTOM POST TYPE
function ST4_columns_head_movies($defaults) {
    $defaults[‘my_movie_column’] = ‘MY MOVIE COLUMN’;
    return $defaults;
}
 
// GENERAL PURPOSE
function ST4_columns_content($column_name, $post_ID) {
    if ($column_name == ‘first_column’) {
        // DO STUFF FOR first_column COLUMN
        echo ‘The post ID is: ‘ .
    }
 
    /* IF YOU NEED ANOTHER COLUMN — UNCOMMENT ALSO
    $defaults[‘second_column’] = ‘Second Column’;
    in ST4_columns_head()
    */
 
    /*
    if ($column_name == ‘second_column’) {
        // DO STUFF FOR second_column COLUMN
    }
    */
}
 
// TAXONOMIES: CATEGORIES (POSTS AND LINKS), TAGS AND CUSTOM TAXONOMIES
function ST4_columns_content_taxonomy($c, $column_name, $term_id) {
    if ($column_name == ‘first_column’) {
        echo ‘The term ID is: ‘ .
    }
}
 
// USERS
function ST4_columns_content_users($c, $column_name, $user_id) {
    if ($column_name == ‘first_column’) {
        $output .= ‘The user ID is: ‘ .
    }
    if ($column_name == ‘second_column’) {
        $output .= ‘This is the second column content’;
    }
    return $output;
}
 
// CUSTOM POSTS
function ST4_columns_content_movies($column_name, $movie_ID) {
    if ($column_name == ‘my_movie_column’) {
        echo ‘The movie ID is: ‘ .
    }
}

Теперь давайте подключим функции к экранам управления WordPress:

1
2
add_filter(‘manage_posts_columns’, ‘ST4_columns_head’);
add_filter(‘manage_posts_custom_column’, ‘ST4_columns_content’, 10, 2);
1
2
add_filter(‘manage_post_posts_columns’, ‘ST4_columns_head’, 10);
add_action(‘manage_post_posts_custom_column’, ‘ST4_columns_content’, 10, 2);
1
2
add_filter(‘manage_page_posts_columns’, ‘ST4_columns_head’, 10);
add_action(‘manage_page_posts_custom_column’, ‘ST4_columns_content’, 10, 2);
1
2
add_filter(‘manage_movie_posts_columns’, ‘ST4_columns_head_movies’, 10);
add_action(‘manage_movie_posts_custom_column’, ‘ST4_columns_content_movies’, 10, 2);
1
2
add_filter(‘manage_edit-category_columns’, ‘ST4_columns_head’);
add_filter(‘manage_category_custom_column’, ‘ST4_columns_content_taxonomy’, 10, 2);
1
2
add_filter(‘manage_edit-genre_columns’, ‘ST4_columns_head’);
add_filter(‘manage_genre_custom_column’, ‘ST4_columns_content_taxonomy’, 10, 2);
1
2
add_filter(‘manage_edit-post_tag_columns’, ‘ST4_columns_head’);
add_filter(‘manage_post_tag_custom_column’, ‘ST4_columns_content_taxonomy’, 10, 2);
1
2
add_filter(‘manage_edit-link_category_columns’, ‘ST4_columns_head’);
add_filter(‘manage_link_category_custom_column’, ‘ST4_columns_content_taxonomy’, 10, 2);
1
2
add_filter(‘manage_media_columns’, ‘ST4_columns_head’);
add_filter(‘manage_media_custom_column’, ‘ST4_columns_content’, 10, 2);
1
2
add_filter(‘manage_users_columns’, ‘ST4_columns_head’);
add_filter(‘manage_users_custom_column’, ‘ST4_columns_content_users’, 10, 2);

Два последних примечания: если на экране управления нет элементов, например, пока нет тегов, содержимое нового столбца не отображается.

Функция ST4_columns_content_users немного отличается от других, поскольку она возвращает переменную PHP, содержащую HTML, вместо печати содержимого столбца на лету.