This topic has 2 voices, contains 2 replies, and was last updated by Andrewasencio 246 días ago.
¿Como Insertar metadata del post? 16/9/2011 at 18:10
Hola, me gustaría inserta en uno de los themes de carousel, a parte de datos como TITLE, IMAGE_URL, etc., Valores meta. He probado con la función normal de wordpress (get_post_meta) pero no devuelve nada dentro del carousel.
¿Hay alguna posibilidad de cargar datos del post de este tipo? También estaria interesado en cargar categorias, tags o taxonomias.
Un saludo, enhorabuena por el plugin y gracias!
Reply To: ¿Como Insertar metadata del post? 17/9/2011 at 8:50
Es posible hacerlo. Verás, WP Carousel almacena junto a al título (índice TITLE), la URL de la imagen )(índice IMAGE_URL) la ID del elemento (índice ID).
Esta ID, a excepción de cuando se trata de contenido personalizado, es la misma ID que utiliza WordPress para referirse a cada página o artículo (en el caso del contenido personalizado no es así porque simplemente WordPress no maneja el contenido personalizado).
No puedes usar las mismas funciones que usarías dentro del loop de WordPress porque no se inicia un loop como ese en los themes de WP Carousel, pero sí que puedes obtener el objeto que corresponde a la página o artículo a través de la ID del elemento.
Puedes ver un ejemplo aquí (tienes el ejemplo en pastebin.com porque al publicarlo aquí me convierte algunos caracteres a su código HTML y estropea el código).
Vamos, puedes usar cualquier función de WordPress que te acepte la ID del artículo como parámetro. La mayoría de funciones aceptan este parámetro aunque por defecto utilizan la ID del artículo actual. Como WP Carousel utiliza un bucle personalizado y no sigue la estructura del loop de WordPress, es más que posible que al llamar a una de estas funciones sin especificar la ID del artículo obtengas datos de un artículo diferente.
Sin embargo, indicando la ID del artículo puedes obtener cualquier información del artículo o de la página, realmente no hay nada que no puedas obtener, tan sólo necesitas saber qué función te devuelve el valor que te interesa y cómo indicarle la ID del artículo.
Lo que no puedes hacer es usar funciones como the_title(), ya que al no aceptar el parámetro ID no hay manera de hacer que trabaje con el artículo que nos interese, sino que se pondrá a trabajar tomando como artículo el que se esté mostrando en el loop (bueno, en realidad es algo más complejo, pero dejémoslo así). Ese tipo de funciones no podrás usarlas porque no obtendrás los resultados que se corresponden al artículo que te interesa, pero cualquier otra función que admita establecer la ID te valdrá.
Por último, ten en cuenta que no todos los elementos que se añaden al carrusel son páginas y artículos, también hay contenidos personalizados, que tienen ID pero no se corresponde con nada. Tienes que evitarlos comprobando el valor de $item['TYPE']. Si no recuerdo mal, el valor 4 indicaba que se trataba de contenido personalizado.
Otro apunte, al añadir categorías, tags o cualquier elemento que agrupe diversos artículos o páginas, al theme le llegan “procesados”, es decir, la categoría A se convierte en los N artículos que contiene, y la categoría A es eliminada de la matriz de contenido. Es decir, que nunca encontrarás en el carrusel algo diferente de artículos (con o sin tipos personalizados), páginas o contenido personalizados.
Si no lo tienes del todo claro, puedes publicar tu theme y explicar exactamente qué quieres conseguir y puedo hacerte las modificaciones y resaltarte los cambios que haya hecho, siempre que no sea algo muy complicado, mi tiempo es limitado.
Reply To: ¿Como Insertar metadata del post? 19/9/2011 at 10:49
Te agradezco mucho la respuesta, ha quedado todo clarísimo y funcionando. De momento estoy haciendo pruebas en local con algún metadata simple que recoge una cadena de texto, pero en un futuro también necesitaré mostrar categorias en algún carrusel.
Quiero felicitarte por el trabajo que estás haciendo y sobre todo por el interés que muestras en progresar en tus proyectos y ayudar a los que los seguimos..
Un saludo y muchas gracias!
This topic has been closed to new replies.