Aviso: Intentando obtener propiedad de un no-objeto en options.php
Estoy generando el siguiente aviso en mi options.php cuando pruebo mi tema con wp_debug activado.
Puedo ver dónde está el problema pero no sé cómo solucionarlo.
Parece que el no-objeto está siendo llamado desde el array de taxonomías en options.php ya que el array no puede encontrar el term_id porque no se ha creado un post y/o categoría en el tipo de post personalizado. Cuando creo un post y le asigno una categoría, el aviso desaparece.
// Traer todas las taxonomías personalizadas a 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;
}
// Seleccionar una Categoría para tu Área de Cliente
$options[] = array(
'name' => __('Galerías Protegidas por Contraseña', 'shutter'),
'desc' => __('Elige una categoría para las galerías de clientes protegidas por contraseña.', 'shutter'),
'id' => 'client_area',
'type' => 'select',
'options' => $options_password_taxonomies);

Puedes usar isset() o property_exists() para verificar si la propiedad existe.
foreach ( $taxonomies_password_terms_obj as $taxonomy) {
if( isset( $taxonomy->term_id ) ){
$options_password_taxonomies[$taxonomy->term_id] = $taxonomy->name;
}
}

Gracias por esto. Soluciona el problema pero genera un nuevo aviso.
¿Debería publicar esto como una nueva pregunta?
Aviso: Índice indefinido: homepage_feature en /inc/options-framework.php en la línea 313

Sí, deberías publicarlo como una nueva pregunta. Antes, ve a esa línea y usa otro isset()
antes de usar esa variable de array. Debería solucionarse.

Gracias. Puedo ver que ya hay un isset() en options-framework.php - pero esto no parece hacer diferencia.
if ( ! isset( $option['id'] ) ) {
continue; }

ok, agregué un nuevo isset() para term_id y esto parece eliminar los errores. gracias por presentarme la magia de isset() :)
