wordpress 自定义 后台 post 字段显示

原文地址:http://www.smashingmagazine.com/2013/12/05/modifying-admin-post-lists-in-wordpress/

google翻译成中文:http://translate.google.com.hk/translate?hl=zh-CN&sl=en&u=http://www.smashingmagazine.com/2013/12/05/modifying-admin-post-lists-in-wordpress/&prev=/search%3Fq%3Dadmin%2Bpost%2Bfilter%26newwindow%3D1%26safe%3Dstrict%26espv%3D2%26biw%3D1920%26bih%3D940


这里贴出自己制作功能应用时用到的代码:

/*Adding Custom Table Headers
--------------------------------------------------------------------------
--------------------------------------------------------------------------
--------------------------------------------------------------------------
--------------------------------------------------------------------------*/
add_filter('manage_post_posts_columns', 'bs_expire_table_head');
function bs_expire_table_head( $defaults ) {
    $defaults['expire_date']  = 'Expire Date';
    return $defaults;
}
/*Fill 'er Up!
--------------------------------------------------------------------------*/
add_action( 'manage_post_posts_custom_column', 'bs_expire_table_content', 10, 2 );

function bs_expire_table_content( $column_name, $post_id ) {
    if ($column_name == 'expire_date') {
    $expire_date = get_post_meta( $post_id, 'custom_expire', true );
      echo  $expire_date ;
    }
}
/*Ordering Columns
--------------------------------------------------------------------------*/
add_filter( 'manage_edit-post_sortable_columns', 'bs_expire_table_sorting' );
function bs_expire_table_sorting( $columns ) {
  $columns['expire_date'] = 'expire_date';
  return $columns;
}

add_filter( 'request', 'bs_expire_date_column_orderby' );
function bs_expire_date_column_orderby( $vars ) {
    if ( isset( $vars['orderby'] ) && 'expire_date' == $vars['orderby'] ) {
        $vars = array_merge( $vars, array(
            'meta_key' => 'custom_expire',
            'orderby' => 'meta_value'
        ) );
    }

    return $vars;
}

/*Data Filtering
--------------------------------------------------------------------------*/
add_action( 'restrict_manage_posts', 'bs_expire_table_filtering' );
function bs_expire_table_filtering() {

  global $wpdb;
  if ( 1/*$screen->post_type == 'post'*/ ) {
	$selected = ( !empty( $_GET['expire_date'] ) AND $_GET['expire_date'] == 'Expired' ) ? 'selected="select"' : '';
	echo '<select name="expire_date" id="expire_date">';
    echo '<option value="">Unselected Expired</option>';
	echo '<option value="Expired" '.$selected.'>All Expired</option>';
    echo '</select>';
  }
}
/*we need to add rules to the query
--------------------------------------------------------------------------*/
add_filter( 'parse_query','bs_expire_table_filter' );
function bs_expire_table_filter( $query ) {
	//var_dump($query);
  if( is_admin() AND $query->query['post_type'] == 'post' ) {		  
    $qv = &$query->query_vars;
	//echo "<pre>".print_r($query,true)."</pre>";
    $qv['meta_query'] = array();
 	
    if( !empty( $_GET['expire_date'] ) && $_GET['expire_date'] == 'Expired' ) {
		
		add_filter( 'posts_where' , 'posts_where_statement' ); 
		function posts_where_statement( $where ) {
			global $wpdb; 
			$where .= "AND ID IN(
						SELECT post_id 
						from $wpdb->postmeta 
						where meta_key = 'custom_expire' 
							AND meta_value <>'' 
							AND STR_TO_DATE(meta_value,'%m/%d/%Y') < CURDATE()
					)";
			 return $where;
		}
    }

    if( !empty( $_GET['orderby'] ) AND $_GET['orderby'] == 'expire_date' ) {
      $qv['orderby'] = 'meta_value';
      $qv['meta_key'] = 'custom_expire';
      $qv['order'] = strtoupper( $_GET['order'] );
    }

  }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值