如何将列添加到自定义POST表

时间:2014-09-22 作者:Femi

我已经创建了一个自定义帖子类型。我还为我的自定义帖子类型添加了一个元框。我现在要做的是将我的元框作为列添加到我的自定义post表中。

我的自定义帖子

add_action( \'init\', \'create_post_type\' );
// Create my custom post
function create_post_type() {
    register_post_type( \'spark_stars\', 
        array(\'labels\' => 
            array(
                \'name\' => __( \'Stars\' ),
           \'singular_name\' => __( \'Star\' )),
           \'public\' => true,
           \'has_archive\' => true,
           \'supports\' => array( \'title\', \'editor\', \'thumbnail\'),
        )
    );
 }

add_action(\'add_meta_boxes\',\'stars_meta_box\');
// Create my meta box
function stars_meta_box(){
    global $post;
    add_meta_box(\'first_name_meta_box\',\'First Name\',
        \'first_name_meta_box_html\',\'spark_stars\',\'normal\',\'default\');
}
// Create meta box html
function first_name_meta_box_html(){
    wp_nonce_field(\'first_name\',\'first_name_meta_box_nonce\');
    $value = get_post_meta(get_the_ID(), \'first_name_meta_box_key\', true ); ?>
    <label>First Name: </label>
        <input type="text" name="fname" 
            value="<?php echo esc_attr($value); ?>"/>
<?php { 

add_action(\'manage_spark_stars_posts_columns\',.....) // is this the function?
add_filter(\'manage_spark_stars_posts_columns\',.....) // is this the function?
如何将此元框作为自定义帖子表中的一列获取,以及如何将每个帖子的缩略图作为自定义帖子表中的一列获取?

1 个回复
最合适的回答,由SO网友:Welcher 整理而成

我认为manage_{$post_type}_posts_columns 过滤器就是你要找的。然后可以使用manage_posts_custom_column 管理帖子列表视图中每列内容的操作。

编辑::

要向自定义帖子类型添加自定义列,需要使用manage_{$post_type}_posts_columns 哪里$post_type 是用于注册自定义帖子类型的名称。如果是你的话spark_stars.

这个$columns 变量是当前列的数组。您可以根据需要向其添加或完全覆盖它。

add_filter(\'manage_spark_stars_posts_columns\',\'filter_cpt_columns\');

function filter_cpt_columns( $columns ) {
    // this will add the column to the end of the array
    $columns[\'first_name\'] = \'First Name\';
    //add more columns as needed

    // as with all filters, we need to return the passed content/variable
    return $columns;
}
下一步是告诉WordPress需要在列中显示哪些内容。这可以通过manage_posts_custom_column 行动下面的方法输出First Name 如果post元存在,或者如果不存在,则为默认字符串。

add_action( \'manage_posts_custom_column\',\'action_custom_columns_content\', 10, 2 );
function action_custom_columns_content ( $column_id, $post_id ) {
    //run a switch statement for all of the custom columns created
    switch( $column_id ) { 
        case \'first_name\':
            echo ($value = get_post_meta($post_id, \'first_name_meta_box_key\', true ) ) ? $value : \'No First Name Given\';
        break;

        //add more items here as needed, just make sure to use the column_id in the filter for each new item.

   }
}
希望这更清楚!

结束

相关推荐

使用wp_Query_Columns进行WordPress分页

我使用的代码来自here 将循环拆分为列。这些列可以工作。我在数据库中有7篇帖子,showposts设置为6篇。我无法获取要显示的下一页链接?我在$args数组中有一个$paged变量,我在admin/reading中将每页的帖子数设置为5。下面是完整的循环。非常感谢。<?php $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; $args = array( \'showposts\' =