¿Cómo cambiar el formato de "fecha de publicación" en edit.php (página de publicaciones)?

2

En edit.php, el contenido principal es una lista de publicaciones, con columnas que incluyen la fecha publicada.

Me gustaría cambiar el formato de fecha de la fecha publicada solo en la página de administración . En este caso, no quiero cambiar lo que ven los usuarios; Quiero cambiar lo que ve el administrador.

Quiero agregar el día de la semana a la fecha publicada / programada, porque estoy planeando publicar "Todos los martes, al menos," y quiero asegurarme de que programé las publicaciones correctamente.

Después de la búsqueda, la mejor ruta parece ser crear un campo personalizado, pero si hay una forma más sutil de hacerlo, prefiero no instalar el complemento del campo personalizado.

editar: gracias al comentario de Bainternet, veo que ya tengo campos personalizados (la opción estaba oculta de forma predeterminada). Y, veo que los campos personalizados son no lo que quiero. Los datos ya existen; Solo quiero formatearlo de manera diferente en la pantalla.

    
pregunta Thunder Rabbit 04.06.2011 - 10:20

3 respuestas

6
  1. Agregue una columna a la pantalla de edición de publicación y formatee la fecha como desee.

  2. Eliminar el Columna de fecha predeterminada .

EDIT aquí está el código para colocar dentro del archivo functions.php de tu tema:

EDIT 2 agregó un código adicional para agregar el estado de publicación y hacer que la columna se pueda ordenar, ahora debería ser una copia completa de la columna de la fecha original.

function my_custom_columns( $columns ) {
  unset( $columns['date'] );
  $columns['mydate'] = 'My Custom Date';
  return $columns;
}

function my_format_column( $column_name , $post_id ) {
    if($column_name == 'mydate'){
        echo get_the_time( 'l, F j, Y', $post_id )."<br>".get_post_status( $post_id );
    }
}

function my_column_register_sortable( $columns ) {
    $columns['mydate'] = 'mydate';
    return $columns;
}

function my_column_orderby( $vars ) {
    if ( isset( $vars['orderby'] ) && 'mydate' == $vars['orderby'] ) {
        $vars = array_merge( $vars, array(
            'orderby' => 'date'
        ) );
    }
    return $vars;
}

function my_column_init() {
  add_filter( 'manage_posts_columns' , 'my_custom_columns' );
  add_action( 'manage_posts_custom_column' , 'my_format_column' , 10 , 2 );
  add_filter( 'manage_edit-post_sortable_columns', 'my_column_register_sortable' );
  add_filter( 'request', 'my_column_orderby' );
}
add_action( 'admin_init' , 'my_column_init' );

Gracias a Scribu por su tutorial sobre columnas clasificables

    
respondido por el Milo 04.06.2011 - 21:42
4

Simplemente puedes usar el filtro post_date_column_time:

add_filter( 'post_date_column_time' , 'my_post_date_column_time' , 10 , 2 );

function my_post_date_column_time( $h_time, $post ) {
    $h_time = get_post_time( 'l, F j, Y', false, $post );
    return $h_time;
}
    
respondido por el LUIS 14.04.2017 - 17:14
-3

¡NO HAGAS LOS ARCHIVOS DE CORE! ¡Realmente hay una manera fácil de hacer el pequeño cambio que estás pensando en hacer!

Ignorar mi respuesta original:

  

El cambio que quiero es tan fácil que estoy hackeando el núcleo archivos .

     

Puedo simplemente agregar "l" a la cadena de formato de $post->post_date en wp-admin/includes/class-wp-posts-list-table.php cada vez que actualizo , hasta que la cantidad acumulada de horas pasadas haciendo ese pequeño cambio agregue más que averiguar cómo hacerlo con un plugin / widget / template / hook e implementándolo.

No voy a aceptar mi respuesta por ahora ; Espero que alguien todavía pueda agradecer a Milo, ¡quien me mostró la manera correcta de hacerlo!

    
respondido por el Thunder Rabbit 08.06.2011 - 18:57

Lea otras preguntas en las etiquetas