Donc, ma question est à peu près ce que vous voyez sur la photo. Dans mon type de message personnalisé "Produits", comment puis-je ajouter une colonne supplémentaire comme SEO que Yoast a faite à ma table principale, appelée WP_List_Table . J'ai le code qui explique comment obtenir une fonctionnalité de rupture de stock à afficher selon que l'élément a un champ custom_field de "Rupture de stock" défini sur true ou sur false. Ce n'est pas un problème, mais comment puis-je cibler cette zone de la table dans mon code. Je suppose que ce serait un filtre, pas pour savoir comment cela fonctionnerait, mais je l'apprécie vraiment si quelqu'un peut m'aider.
Je pense que ce dont vous avez besoin, c’est l’ensemble de filtres et d’actions permettant d’ajouter des colonnes personnalisées pour poster des écrans de modification:
manage_edit-post_type_sortable_columns
.Par exemple, j'utilise ce code pour ajouter une colonne pouvant être triée avec des informations sur les hits après un méta-champ personnalisé:
add_filter( 'manage_edit-post_columns', 'add_new_columns' );
add_filter( 'manage_edit-post_sortable_columns', 'register_sortable_columns' );
add_filter( 'request', 'hits_column_orderby' );
add_action( 'manage_posts_custom_column' , 'custom_columns' );
/**
* Add new columns to the post table
*
* @param Array $columns - Current columns on the list post
*/
function add_new_columns($columns){
$column_meta = array( 'hits' => 'Hits' );
$columns = array_slice( $columns, 0, 6, true ) + $column_meta + array_slice( $columns, 6, NULL, true );
return $columns;
}
// Register the columns as sortable
function register_sortable_columns( $columns ) {
$columns['hits'] = 'hits';
return $columns;
}
//Add filter to the request to make the hits sorting process numeric, not string
function hits_column_orderby( $vars ) {
if ( isset( $vars['orderby'] ) && 'hits' == $vars['orderby'] ) {
$vars = array_merge( $vars, array(
'meta_key' => 'hits',
'orderby' => 'meta_value_num'
) );
}
return $vars;
}
/**
* Display data in new columns
*
* @param $column Current column
*
* @return Data for the column
*/
function custom_columns($column) {
global $post;
switch ( $column ) {
case 'hits':
$hits = get_post_meta( $post->ID, 'hits', true );
echo (int)$hits;
break;
}
}