Changeset 32721
- Timestamp:
- 06/10/2015 02:00:55 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/class-wp-posts-list-table.php
r32668 r32721 719 719 } 720 720 721 if ( 'title' === $column_name ) { 722 $classes .= ' page-title'; // Special addition for title column 723 } 724 721 725 $style = ''; 722 726 if ( in_array( $column_name, $hidden ) ) { … … 726 730 $attributes = "class='$classes'$style"; 727 731 728 switch ( $column_name ) { 729 730 case 'cb': 731 ?> 732 <th scope="row" class="check-column"> 732 if ( 'cb' === $column_name ) { 733 ?> 734 <th scope="row" class="check-column"> 735 <?php if ( $can_edit_post ) { ?> 736 <label class="screen-reader-text" for="cb-select-<?php the_ID(); ?>"><?php printf( __( 'Select %s' ), $title ); ?></label> 737 <input id="cb-select-<?php the_ID(); ?>" type="checkbox" name="post[]" value="<?php the_ID(); ?>" /> 738 <div class="locked-indicator"></div> 739 <?php } ?> 740 </th> 733 741 <?php 734 if ( $can_edit_post ) { 735 736 ?> 737 <label class="screen-reader-text" for="cb-select-<?php the_ID(); ?>"><?php printf( __( 'Select %s' ), $title ); ?></label> 738 <input id="cb-select-<?php the_ID(); ?>" type="checkbox" name="post[]" value="<?php the_ID(); ?>" /> 739 <div class="locked-indicator"></div> 740 <?php 741 } 742 ?> 743 </th> 744 <?php 745 break; 746 747 case 'title': 748 $classes .= ' page-title'; // Special addition for title column 749 $attributes = "class='$classes'$style"; 750 if ( $this->hierarchical_display ) { 751 if ( 0 == $level && (int) $post->post_parent > 0 ) { 752 // Sent level 0 by accident, by default, or because we don't know the actual level. 753 $find_main_page = (int) $post->post_parent; 754 while ( $find_main_page > 0 ) { 755 $parent = get_post( $find_main_page ); 756 757 if ( is_null( $parent ) ) 758 break; 759 760 $level++; 761 $find_main_page = (int) $parent->post_parent; 762 763 if ( !isset( $parent_name ) ) { 764 /** This filter is documented in wp-includes/post-template.php */ 765 $parent_name = apply_filters( 'the_title', $parent->post_title, $parent->ID ); 742 } else { 743 echo "<td $attributes>"; 744 745 switch ( $column_name ) { 746 747 case 'title': 748 if ( $this->hierarchical_display ) { 749 if ( 0 == $level && (int) $post->post_parent > 0 ) { 750 // Sent level 0 by accident, by default, or because we don't know the actual level. 751 $find_main_page = (int) $post->post_parent; 752 while ( $find_main_page > 0 ) { 753 $parent = get_post( $find_main_page ); 754 755 if ( is_null( $parent ) ) 756 break; 757 758 $level++; 759 $find_main_page = (int) $parent->post_parent; 760 761 if ( !isset( $parent_name ) ) { 762 /** This filter is documented in wp-includes/post-template.php */ 763 $parent_name = apply_filters( 'the_title', $parent->post_title, $parent->ID ); 764 } 766 765 } 767 766 } 768 767 } 769 } 770 771 $pad = str_repeat( '— ', $level ); 772 echo "<td $attributes><strong>"; 773 774 if ( $format = get_post_format( $post->ID ) ) { 775 $label = get_post_format_string( $format ); 776 777 echo '<a href="' . esc_url( add_query_arg( array( 'post_format' => $format, 'post_type' => $post->post_type ), 'edit.php' ) ) . '" class="post-state-format post-format-icon post-format-' . $format . '" title="' . $label . '">' . $label . ":</a> "; 778 } 779 780 if ( $can_edit_post && $post->post_status != 'trash' ) { 781 echo '<a class="row-title" href="' . $edit_link . '" title="' . esc_attr( sprintf( __( 'Edit “%s”' ), $title ) ) . '">' . $pad . $title . '</a>'; 782 } else { 783 echo $pad . $title; 784 } 785 _post_states( $post ); 786 787 if ( isset( $parent_name ) ) 788 echo ' | ' . $post_type_object->labels->parent_item_colon . ' ' . esc_html( $parent_name ); 789 790 echo "</strong>\n"; 791 792 if ( $can_edit_post && $post->post_status != 'trash' ) { 793 if ( $lock_holder ) { 794 $locked_avatar = get_avatar( $lock_holder->ID, 18 ); 795 $locked_text = esc_html( sprintf( __( '%s is currently editing' ), $lock_holder->display_name ) ); 768 769 $pad = str_repeat( '— ', $level ); 770 echo "<strong>"; 771 772 if ( $format = get_post_format( $post->ID ) ) { 773 $label = get_post_format_string( $format ); 774 775 echo '<a href="' . esc_url( add_query_arg( array( 'post_format' => $format, 'post_type' => $post->post_type ), 'edit.php' ) ) . '" class="post-state-format post-format-icon post-format-' . $format . '" title="' . $label . '">' . $label . ":</a> "; 776 } 777 778 if ( $can_edit_post && $post->post_status != 'trash' ) { 779 echo '<a class="row-title" href="' . $edit_link . '" title="' . esc_attr( sprintf( __( 'Edit “%s”' ), $title ) ) . '">' . $pad . $title . '</a>'; 796 780 } else { 797 $locked_avatar = $locked_text = '';781 echo $pad . $title; 798 782 } 799 800 echo '<div class="locked-info"><span class="locked-avatar">' . $locked_avatar . '</span> <span class="locked-text">' . $locked_text . "</span></div>\n"; 801 } 802 803 if ( ! $this->hierarchical_display && 'excerpt' == $mode && current_user_can( 'read_post', $post->ID ) ) 804 the_excerpt(); 805 806 echo $this->handle_row_actions( $post, $column_name, $primary ); 807 808 get_inline_data( $post ); 809 echo '</td>'; 810 break; 811 812 case 'date': 813 if ( '0000-00-00 00:00:00' == $post->post_date ) { 814 $t_time = $h_time = __( 'Unpublished' ); 815 $time_diff = 0; 816 } else { 817 $t_time = get_the_time( __( 'Y/m/d g:i:s a' ) ); 818 $m_time = $post->post_date; 819 $time = get_post_time( 'G', true, $post ); 820 821 $time_diff = time() - $time; 822 823 if ( $time_diff > 0 && $time_diff < DAY_IN_SECONDS ) 824 $h_time = sprintf( __( '%s ago' ), human_time_diff( $time ) ); 783 _post_states( $post ); 784 785 if ( isset( $parent_name ) ) 786 echo ' | ' . $post_type_object->labels->parent_item_colon . ' ' . esc_html( $parent_name ); 787 788 echo "</strong>\n"; 789 790 if ( $can_edit_post && $post->post_status != 'trash' ) { 791 if ( $lock_holder ) { 792 $locked_avatar = get_avatar( $lock_holder->ID, 18 ); 793 $locked_text = esc_html( sprintf( __( '%s is currently editing' ), $lock_holder->display_name ) ); 794 } else { 795 $locked_avatar = $locked_text = ''; 796 } 797 798 echo '<div class="locked-info"><span class="locked-avatar">' . $locked_avatar . '</span> <span class="locked-text">' . $locked_text . "</span></div>\n"; 799 } 800 801 if ( ! $this->hierarchical_display && 'excerpt' == $mode && current_user_can( 'read_post', $post->ID ) ) 802 the_excerpt(); 803 804 get_inline_data( $post ); 805 break; 806 807 case 'date': 808 if ( '0000-00-00 00:00:00' == $post->post_date ) { 809 $t_time = $h_time = __( 'Unpublished' ); 810 $time_diff = 0; 811 } else { 812 $t_time = get_the_time( __( 'Y/m/d g:i:s a' ) ); 813 $m_time = $post->post_date; 814 $time = get_post_time( 'G', true, $post ); 815 816 $time_diff = time() - $time; 817 818 if ( $time_diff > 0 && $time_diff < DAY_IN_SECONDS ) 819 $h_time = sprintf( __( '%s ago' ), human_time_diff( $time ) ); 820 else 821 $h_time = mysql2date( __( 'Y/m/d' ), $m_time ); 822 } 823 824 if ( 'excerpt' == $mode ) { 825 826 /** 827 * Filter the published time of the post. 828 * 829 * If $mode equals 'excerpt', the published time and date are both displayed. 830 * If $mode equals 'list' (default), the publish date is displayed, with the 831 * time and date together available as an abbreviation definition. 832 * 833 * @since 2.5.1 834 * 835 * @param array $t_time The published time. 836 * @param WP_Post $post Post object. 837 * @param string $column_name The column name. 838 * @param string $mode The list display mode ('excerpt' or 'list'). 839 */ 840 echo apply_filters( 'post_date_column_time', $t_time, $post, $column_name, $mode ); 841 } else { 842 843 /** This filter is documented in wp-admin/includes/class-wp-posts-list-table.php */ 844 echo '<abbr title="' . $t_time . '">' . apply_filters( 'post_date_column_time', $h_time, $post, $column_name, $mode ) . '</abbr>'; 845 } 846 echo '<br />'; 847 if ( 'publish' == $post->post_status ) { 848 _e( 'Published' ); 849 } elseif ( 'future' == $post->post_status ) { 850 if ( $time_diff > 0 ) 851 echo '<strong class="attention">' . __( 'Missed schedule' ) . '</strong>'; 852 else 853 _e( 'Scheduled' ); 854 } else { 855 _e( 'Last Modified' ); 856 } 857 break; 858 859 case 'comments': 860 ?> 861 <div class="post-com-count-wrapper"> 862 <?php 863 $pending_comments = isset( $this->comment_pending_count[$post->ID] ) ? $this->comment_pending_count[$post->ID] : 0; 864 865 $this->comments_bubble( $post->ID, $pending_comments ); 866 ?> 867 </div> 868 <?php 869 break; 870 871 case 'author': 872 printf( '<a href="%s">%s</a>', 873 esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'author' => get_the_author_meta( 'ID' ) ), 'edit.php' )), 874 get_the_author() 875 ); 876 break; 877 878 default: 879 if ( 'categories' == $column_name ) 880 $taxonomy = 'category'; 881 elseif ( 'tags' == $column_name ) 882 $taxonomy = 'post_tag'; 883 elseif ( 0 === strpos( $column_name, 'taxonomy-' ) ) 884 $taxonomy = substr( $column_name, 9 ); 825 885 else 826 $h_time = mysql2date( __( 'Y/m/d' ), $m_time ); 827 } 828 829 echo '<td ' . $attributes . '>'; 830 if ( 'excerpt' == $mode ) { 886 $taxonomy = false; 887 888 if ( $taxonomy ) { 889 $taxonomy_object = get_taxonomy( $taxonomy ); 890 if ( $terms = get_the_terms( $post->ID, $taxonomy ) ) { 891 $out = array(); 892 foreach ( $terms as $t ) { 893 $posts_in_term_qv = array(); 894 if ( 'post' != $post->post_type ) 895 $posts_in_term_qv['post_type'] = $post->post_type; 896 if ( $taxonomy_object->query_var ) { 897 $posts_in_term_qv[ $taxonomy_object->query_var ] = $t->slug; 898 } else { 899 $posts_in_term_qv['taxonomy'] = $taxonomy; 900 $posts_in_term_qv['term'] = $t->slug; 901 } 902 903 $out[] = sprintf( '<a href="%s">%s</a>', 904 esc_url( add_query_arg( $posts_in_term_qv, 'edit.php' ) ), 905 esc_html( sanitize_term_field( 'name', $t->name, $t->term_id, $taxonomy, 'display' ) ) 906 ); 907 } 908 /* translators: used between list items, there is a space after the comma */ 909 echo join( __( ', ' ), $out ); 910 } else { 911 echo '—'; 912 } 913 break; 914 } 915 916 if ( is_post_type_hierarchical( $post->post_type ) ) { 917 918 /** 919 * Fires in each custom column on the Posts list table. 920 * 921 * This hook only fires if the current post type is hierarchical, 922 * such as pages. 923 * 924 * @since 2.5.0 925 * 926 * @param string $column_name The name of the column to display. 927 * @param int $post_id The current post ID. 928 */ 929 do_action( 'manage_pages_custom_column', $column_name, $post->ID ); 930 } else { 931 932 /** 933 * Fires in each custom column in the Posts list table. 934 * 935 * This hook only fires if the current post type is non-hierarchical, 936 * such as posts. 937 * 938 * @since 1.5.0 939 * 940 * @param string $column_name The name of the column to display. 941 * @param int $post_id The current post ID. 942 */ 943 do_action( 'manage_posts_custom_column', $column_name, $post->ID ); 944 } 831 945 832 946 /** 833 * Fi lter the published time of the post.947 * Fires for each custom column of a specific post type in the Posts list table. 834 948 * 835 * If $mode equals 'excerpt', the published time and date are both displayed. 836 * If $mode equals 'list' (default), the publish date is displayed, with the 837 * time and date together available as an abbreviation definition. 949 * The dynamic portion of the hook name, `$post->post_type`, refers to the post type. 838 950 * 839 * @since 2.5.1 840 * 841 * @param array $t_time The published time. 842 * @param WP_Post $post Post object. 843 * @param string $column_name The column name. 844 * @param string $mode The list display mode ('excerpt' or 'list'). 845 */ 846 echo apply_filters( 'post_date_column_time', $t_time, $post, $column_name, $mode ); 847 } else { 848 849 /** This filter is documented in wp-admin/includes/class-wp-posts-list-table.php */ 850 echo '<abbr title="' . $t_time . '">' . apply_filters( 'post_date_column_time', $h_time, $post, $column_name, $mode ) . '</abbr>'; 851 } 852 echo '<br />'; 853 if ( 'publish' == $post->post_status ) { 854 _e( 'Published' ); 855 } elseif ( 'future' == $post->post_status ) { 856 if ( $time_diff > 0 ) 857 echo '<strong class="attention">' . __( 'Missed schedule' ) . '</strong>'; 858 else 859 _e( 'Scheduled' ); 860 } else { 861 _e( 'Last Modified' ); 862 } 863 echo $this->handle_row_actions( $post, $column_name, $primary ); 864 echo '</td>'; 865 break; 866 867 case 'comments': 868 ?> 869 <td <?php echo $attributes ?>><div class="post-com-count-wrapper"> 870 <?php 871 $pending_comments = isset( $this->comment_pending_count[$post->ID] ) ? $this->comment_pending_count[$post->ID] : 0; 872 873 $this->comments_bubble( $post->ID, $pending_comments ); 874 ?> 875 </div><?php echo $this->handle_row_actions( $post, $column_name, $primary ); ?></td> 876 <?php 877 break; 878 879 case 'author': 880 ?> 881 <td <?php echo $attributes ?>><?php 882 printf( '<a href="%s">%s</a>', 883 esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'author' => get_the_author_meta( 'ID' ) ), 'edit.php' )), 884 get_the_author() 885 ); 886 echo $this->handle_row_actions( $post, $column_name, $primary ); 887 ?></td> 888 <?php 889 break; 890 891 default: 892 if ( 'categories' == $column_name ) 893 $taxonomy = 'category'; 894 elseif ( 'tags' == $column_name ) 895 $taxonomy = 'post_tag'; 896 elseif ( 0 === strpos( $column_name, 'taxonomy-' ) ) 897 $taxonomy = substr( $column_name, 9 ); 898 else 899 $taxonomy = false; 900 901 if ( $taxonomy ) { 902 $taxonomy_object = get_taxonomy( $taxonomy ); 903 echo '<td ' . $attributes . '>'; 904 if ( $terms = get_the_terms( $post->ID, $taxonomy ) ) { 905 $out = array(); 906 foreach ( $terms as $t ) { 907 $posts_in_term_qv = array(); 908 if ( 'post' != $post->post_type ) 909 $posts_in_term_qv['post_type'] = $post->post_type; 910 if ( $taxonomy_object->query_var ) { 911 $posts_in_term_qv[ $taxonomy_object->query_var ] = $t->slug; 912 } else { 913 $posts_in_term_qv['taxonomy'] = $taxonomy; 914 $posts_in_term_qv['term'] = $t->slug; 915 } 916 917 $out[] = sprintf( '<a href="%s">%s</a>', 918 esc_url( add_query_arg( $posts_in_term_qv, 'edit.php' ) ), 919 esc_html( sanitize_term_field( 'name', $t->name, $t->term_id, $taxonomy, 'display' ) ) 920 ); 921 } 922 /* translators: used between list items, there is a space after the comma */ 923 echo join( __( ', ' ), $out ); 924 } else { 925 echo '—'; 926 } 927 echo $this->handle_row_actions( $post, $column_name, $primary ); 928 echo '</td>'; 929 break; 930 } 931 ?> 932 <td <?php echo $attributes ?>><?php 933 if ( is_post_type_hierarchical( $post->post_type ) ) { 934 935 /** 936 * Fires in each custom column on the Posts list table. 937 * 938 * This hook only fires if the current post type is hierarchical, 939 * such as pages. 940 * 941 * @since 2.5.0 951 * @since 3.1.0 942 952 * 943 953 * @param string $column_name The name of the column to display. 944 954 * @param int $post_id The current post ID. 945 955 */ 946 do_action( 'manage_pages_custom_column', $column_name, $post->ID ); 947 } else { 948 949 /** 950 * Fires in each custom column in the Posts list table. 951 * 952 * This hook only fires if the current post type is non-hierarchical, 953 * such as posts. 954 * 955 * @since 1.5.0 956 * 957 * @param string $column_name The name of the column to display. 958 * @param int $post_id The current post ID. 959 */ 960 do_action( 'manage_posts_custom_column', $column_name, $post->ID ); 956 do_action( "manage_{$post->post_type}_posts_custom_column", $column_name, $post->ID ); 957 break; 961 958 } 962 959 963 /**964 * Fires for each custom column of a specific post type in the Posts list table.965 *966 * The dynamic portion of the hook name, `$post->post_type`, refers to the post type.967 *968 * @since 3.1.0969 *970 * @param string $column_name The name of the column to display.971 * @param int $post_id The current post ID.972 */973 do_action( "manage_{$post->post_type}_posts_custom_column", $column_name, $post->ID );974 960 echo $this->handle_row_actions( $post, $column_name, $primary ); 975 ?></td> 976 <?php 977 break; 961 echo '</td>'; 978 962 } 979 963 }
Note: See TracChangeset
for help on using the changeset viewer.