Un utente ha chiesto informazioni su Custom Post Type UI di Wordpress

Aggiungi colonne di campi personalizzati all’elenco CPT

Un utente ha chiesto 👇

Ciao,
Volevo aggiungere ulteriori colonne alla mia mailing list personalizzata dopo aver creato un nuovo tipo di lavoro (“Viaggi” nel mio caso) in CPTUI e recuperare i dati di queste colonne dai campi personalizzati creati da ACF. Ho usato questo codice:

add_filter( 'manage_edit-trips_columns', 'my_edit_trips_columns' ) ;

function my_edit_trips_columns( $columns ) {

	$columns = array(
		'cb' => '<input type="checkbox" />',
		'title' => __( 'Trip name' ),
		'region' => __( 'Region' ),
		'start_date' => __( 'Start date' ),
		'date' => __( 'Date' )
	);

	return $columns;
}

add_action( 'manage_trips_posts_custom_column', 'my_manage_trips_columns', 10, 2 );

function my_manage_trips_columns( $column, $post_id ) {
	global $post;

	switch( $column ) {

		case 'region' :
            echo get_post_meta( $post_id , 'region' , true ); 
            break;

        case 'start_date' :
            echo get_post_meta( $post_id , 'start_date' , true ); 
            break;

    }
}

Questo mostrava magnificamente le mie rispettive colonne e valori. Volevo anche una colonna per mostrare le tassonomie personalizzate. Ho creato le mie tassonomie personalizzate e ho selezionato l’impostazione “Mostra colonna amministratore” su True. Tuttavia, la colonna della tassonomia non è stata visualizzata quando ho disabilitato il codice sopra. C’è un modo per visualizzare le colonne personalizzate E anche la colonna della tassonomia personalizzata?

Autore del plugin

(@ tw2113)

Un BenchPresser

2 anni, 2 mesi fa

Sto scommettendo su my_edit_trips_columns() ottenere la funzione $columns un array che contiene quella colonna tassonomica, ma poiché stai ridefinendo completamente l’array, ne stai restituendo uno che non esiste.

Forse prova invece qualcosa del genere, per sovrascrivere e allegare indici, senza ridefinire l’intero set.

$columns['title'] = __( 'Trip name' );
$columns['region'] = __( 'Region' );
$columns['start_date'] = __( 'Start date' );

Lanciatore di thread

(@osiak)

2 anni, 2 mesi fa

Non sono un bravo ragazzo JS – puoi aiutarmi a ridefinire l’intero codice e come / dove tagliare / incollare il tuo inserto?

Autore del plugin

(@ tw2113)

Un BenchPresser

2 anni, 2 mesi fa

add_filter( 'manage_edit-trips_columns', 'my_edit_trips_columns' ) ;
function my_edit_trips_columns( $columns ) {

	$columns['title'] = __( 'Trip name' );
	$columns['region'] = __( 'Region' );
	$columns['start_date'] = __( 'Start date' );

	return $columns;
}

Questa risposta è stata modificata 2 anni, 2 mesi fa da. Autore del plugin

(@ tw2113)

Un BenchPresser

2 anni, 2 mesi fa

Ho dovuto modificare un motivo per cui mi sono reso conto di aver copiato la riga add_filter sbagliata.

Lanciatore di thread

(@osiak)

2 anni, 2 mesi fa

Funziona benissimo! Tuttavia la mia colonna della data è ora pubblicata nel mezzo, subito dopo il nome. Qualche possibilità di farlo tornare come ultima colonna?

Autore del plugin

(@ tw2113)

Un BenchPresser

2 anni, 2 mesi fa

Avrai bisogno di fare un po ‘di giocoleria per questo. Questo non è stato completamente testato, ma mi ha imitato in modo diverso.

add_filter( 'manage_edit-trips_columns', 'my_edit_trips_columns' ) ;
function my_edit_trips_columns( $columns ) {

	// store value temporarily.
	$date_val = $columns['date'];

	// Unset original index.
	unset( $columns['date'] );

	$columns['title'] = __( 'Trip name' );
	$columns['region'] = __( 'Region' );
	$columns['start_date'] = __( 'Start date' );
	$columns['date'] = $date_val;

	return $columns;
}

Si presume che uno degli indici avrà sempre una “data”.

Lanciatore di thread

(@osiak)

2 anni, 2 mesi fa

La colonna ora non mostra una data …

Autore del plugin

(@ tw2113)

Un BenchPresser

2 anni, 2 mesi fa

Non sono sicuro di cosa dirai con quei dati. Ecco un’immagine di un tipo di lavoro “portfolio” che ho prontamente disponibile, che mostra tutte le colonne proposte, utilizzando il mio codice sopra. Non ci sono valori per nulla, poiché al momento non ci sono messaggi 😀

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *