Avviso: Tentativo di ottenere una proprietà di un non-oggetto in options.php
Sto ricevendo il seguente avviso nel mio options.php quando testo il mio tema in modalità wp_debug.
Riesco a vedere dove si trova il problema ma non so come risolverlo.
Sembra che il non-oggetto venga chiamato dall'array della tassonomia in options.php poiché l'array non riesce a trovare il term_id perché non è stato creato un post e/o una categoria nel tipo di post personalizzato. Quando creo un post e gli assegno una categoria, l'avviso scompare.
// Inserisce tutte le tassonomie personalizzate in un array
$options_password_taxonomies = array();
$taxonomies_password_terms_obj = get_terms('password_gallery_category');
foreach ( $taxonomies_password_terms_obj as $taxonomy) {
$options_password_taxonomies[$taxonomy->term_id] = $taxonomy->name;
}
// Seleziona una Categoria per la tua Area Client
$options[] = array(
'name' => __('Gallerie Protette da Password', 'shutter'),
'desc' => __('Scegli una categoria per le gallerie client protette da password.', 'shutter'),
'id' => 'client_area',
'type' => 'select',
'options' => $options_password_taxonomies);

Puoi usare isset() o property_exists() per verificare se la proprietà esiste.
foreach ( $taxonomies_password_terms_obj as $taxonomy) {
if( isset( $taxonomy->term_id ) ){
$options_password_taxonomies[$taxonomy->term_id] = $taxonomy->name;
}
}

Grazie per questo. Risolve il problema ma genera un nuovo avviso.
Dovrei pubblicarlo come una nuova domanda?
Notice: Undefined index: homepage_feature in /inc/options-framework.php on line 313

Sì, dovresti pubblicarlo come una nuova domanda. Prima, vai a quella riga e usa un altro isset()
prima di utilizzare quella variabile array. Dovrebbe risolvere il problema.

Grazie. Vedo che c'è già un isset() in options-framework.php - ma questo non sembra fare differenza.
if ( ! isset( $option['id'] ) ) {
continue; }

ok, ho aggiunto un nuovo isset() per term_id e sembra che questo abbia risolto gli errori. grazie per avermi introdotto alla magia di isset() :)
