Soy nuevo en Stackoverflow y relativamente nuevo en WordPress también. He estado tratando de crear un tema de WordPress personalizado que también te permita insertar imágenes para categorías en el Panel de WordPress. Hasta ahora, he podido guardar la URL de la imagen en la base de datos usando el siguiente código:
update_term_meta($term_id, 'custom_image_data', $image_data);($image_data es una matriz con los elementos: ID y URL de la imagen)
Sin embargo, ahora me gustaría recuperar estos dos datos y compartirlos con mi archivo Javascript correspondiente. Hasta ahora tengo este código:
function image_uploader_js() { wp_register_script('image_file_uploader_js', get_template_directory_uri() . '/js/image_uploader.js', array('jquery', 'media-upload')); wp_enqueue_script('image_file_uploader_js'); wp_localize_script('image_file_uploader_js', 'customUploads', array('imageData' => get_term_meta(get_queried_object_id(), 'custom_image_data', true)) ); //** } add_action('admin_footer', 'image_uploader_js');Sin embargo, cuando entro en la consola de Google Chrome y escribo CustomUploads, solo muestra una cadena vacía. Pero si tuviera que reemplazar el código get_queried_object_id() con un número estático 1 (que corresponde al $term_id de la categoría) obtengo CustomUploads { id: ##, URL: HTTPS://..... } que es el resultado deseado.
Mi pregunta es por qué no funciona el código original y cómo podría compartir la identificación y la URL o la imagen de mi categoría con mi archivo Javascript.
Asegúrese de estar en la página de categoría, luego get_queried_object_id() devolverá la identificación del término. en otras páginas obtendrá una identificación diferente correspondiente a esa página.
Puede usar is_category() para verificar si está en la página de categoría.
function image_uploader_js() { if( is_category() ){ wp_register_script('image_file_uploader_js', get_template_directory_uri() . '/js/image_uploader.js', array('jquery', 'media-upload')); wp_enqueue_script('image_file_uploader_js'); wp_localize_script('image_file_uploader_js', 'customUploads', array('imageData' => get_term_meta(get_queried_object_id(), 'custom_image_data', true)) ); //** } } add_action('admin_footer', 'image_uploader_js');O puede obtener todos los términos y enviarlos a una matriz y luego puede acceder al archivo js.
function image_uploader_js() { $category = get_terms( array( 'taxonomy' => 'category', // your custom taxonomy name 'hide_empty' => false ) ); $imageData = array(); if( !empty( $category ) ){ foreach ( $category as $key => $cat ) { $imageData[$cat->term_id] = get_term_meta( $cat->term_id, 'custom_image_data', true ); } } wp_register_script( 'image_file_uploader_js', get_template_directory_uri() . '/js/image_uploader.js', array('jquery', 'media-upload') ); wp_enqueue_script( 'image_file_uploader_js'); wp_localize_script( 'image_file_uploader_js', 'customUploads', array( 'imageData' => $imageData ) ); //** } add_action('admin_footer', 'image_uploader_js');