在WordPress仪表板上将类添加到自定义帖子类型列表页面

时间:2014-10-06 20:47:04

标签: php wordpress wordpress-plugin

我正在尝试向WordPress自定义帖子类型列表页面中的每一行添加一个类,例如为后端上的每个帖子添加一个基于元字段值的类:

例如:我有一个功能“呼叫启用/禁用” - 如果帖子被禁用(即只能由某个用户查看),整行应该有一定的背景颜色。

所以我正在寻找一种基于元字段值添加CSS类的解决方案。

3 个答案:

答案 0 :(得分:3)

我会留下你的材料来捣乱。

首先,检查帖子类,


我们可以通过以下方式更改它们:

add_action( 'load-edit.php', function(){
    global $typenow; // current post type
    add_filter( 'post_class', function( $classes, $class, $postID ) {
        $classes[] = 'stack';
        return $classes;
    });
});

要打印CSS,请使用:

add_action( 'admin_head-edit.php', function(){
    $color = 'FDFBC8';
    if( isset( $_GET['color'] ) )
        $color = $_GET['color'];
    ?>
    <style>
    tr.category-uncategorized {
        background-color: #<?php echo $color; ?> !important;
    }
    tr.stack {
        background-color: #333;
    }
    </style>
    <?php
});

此示例在网址中查找?color=hexval


您将使用过滤器$postID中的post_class获取元数据。

答案 1 :(得分:0)

以防brasofilo的示例为您提供缺少参数警告,您可以按旧方式使用过滤器:

add_filter('post_class', 'name_of_your_function');

然后你必须定义这个功能。在这个例子中,我给每一行一个带有帖子ID的类:

function name_of_your_function($classes)
{
    global $post;   
    $classes[] = 'post-id-' . $post->ID;
    return $classes;
}

答案 2 :(得分:0)

functions.php

function my_post_class($classes, $class, $post_id){
    $slug = get_post_field( 'post_name', $post_id );
    $wrong_slug = false;
    if(strpos($slug, '%') !== false){
        $wrong_slug = true;
    }
    if(is_numeric(substr($slug, -1))){
        $wrong_slug = true;
    }
    if($wrong_slug){
        $classes[] = 'wrong-slug';
    }
    return $classes;
}
add_filter('post_class', 'my_post_class', 10, 3);

function admin_style() {
    wp_enqueue_style('admin-styles', get_template_directory_uri().'/admin.css');
}
add_action('admin_enqueue_scripts', 'admin_style');

admin.css

tr.wrong-slug th, tr.wrong-slug td {
  background-color: #FFCC99;
}