Notificare: Încercare de obținere a proprietății unui non-obiect în options.php
Primesc următoarea notificare în options.php când testez tema mea în modul wp_debug.
Pot vedea unde este problema dar nu știu cum să o rezolv?
Se pare că non-obiectul este apelat din array-ul taxonomiei în options.php deoarece array-ul nu poate găsi term_id pentru că nu a fost creat un articol și/sau o categorie în tipul de postare personalizat. Când creez un articol și îi atribui o categorie, notificarea dispare.
// Extrage toate taxonomiile personalizate într-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;
}
// Selectează o Categorie pentru Zona Clientului
$options[] = array(
'name' => __('Galerii Protejate cu Parolă', 'shutter'),
'desc' => __('Alege o categorie pentru galeriile clienților protejate cu parolă.', 'shutter'),
'id' => 'client_area',
'type' => 'select',
'options' => $options_password_taxonomies);

Puteți folosi isset() sau property_exists() pentru a verifica dacă proprietatea există.
foreach ( $taxonomies_password_terms_obj as $taxonomy) {
if( isset( $taxonomy->term_id ) ){
$options_password_taxonomies[$taxonomy->term_id] = $taxonomy->name;
}
}

Mulțumesc pentru asta. Rezolvă problema, dar generează o nouă notificare.
Ar trebui să postez asta ca o întrebare nouă?
Notice: Undefined index: homepage_feature in /inc/options-framework.php on line 313

Da, ar trebui să postezi ca o întrebare nouă. Înainte, mergi la acea linie și folosește încă un isset()
înainte de a utiliza acea variabilă array. Ar trebui să fie rezolvat.

Mulțumesc. Văd că există deja un isset() în options-framework.php - dar nu pare să facă vreo diferență.
if ( ! isset( $option['id'] ) ) {
continue; }

ok, am introdus un nou isset() pentru term_id și asta pare să elimine erorile. mulțumesc că mi-ai prezentat magia lui isset() :)
