Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

253
Views
Obtener ID de publicación en variable en Grid Builder Visual Composer

Estoy tratando de obtener algunos campos personalizados dentro de mi generador de cuadrícula personalizado. He agregado alguna taxonomía adicional y me gustaría agregar datos personalizados para mostrar. He leído su artículo aquí: https://kb.wpbakery.com/docs/developers-how-tos/adding-custom-shortcode-to-grid-builder/ y al implementarlo, tengo un problema cuando tratando de obtener la identificación de la publicación actual. Sé que el código es el siguiente:

 add_shortcode( 'vc_post_id', 'vc_post_id_render' ); function vc_post_id_render() { return '<h2>{{ post_data:ID }}</h2>'; // usage of template variable post_data with argument "ID" }

El caso es que los {{ post_data:ID }} no se pueden guardar en una variable para luego obtener la publicación y jugar con ella como tal:

 $post_id = '{{ post_data:ID }}'; $post = get_post($post_id);

como fallará. ¿Podría decirme cómo obtener la ID de la publicación actual como una variable para poder mostrar datos personalizados en la cuadrícula?

Muchísimas gracias.

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Ok, aquí lo que estoy pensando. En mi escenario, tengo un campo personalizado llamado precio. Entonces pude mostrar el precio usando

 {{ post_data:price }}

Este. Pero cuando estaba tratando de asignarlo a una variable, falló. Cuando var_dump la variable me da (21) caracteres para cada vez. Así que pensé que debía haber personajes invisibles. asique

 echo bin2hex($price)

El resultado fue 7b7b20706f73745f646174613a7072696365207d7d

Y después de la conversión de ASCII a texto, se convirtió en esto

 {{ post_data:price }}

Entonces me di cuenta. Oh tonto de mí. Estas son etiquetas de plantilla. Como en smarty o angular. Inyectaron valores una vez que la página se ha cargado. Entonces, PHP no tiene la oportunidad de obtener valor porque todo sucede en el lado del cliente.

about 4 years ago · Santiago Trujillo Report

0

necesita crear vc_gitem_template_attribute_YOUR_ATTRIBUTE y allí puede tomar la identificación. como esto:

 add_filter( 'vc_gitem_template_attribute_producer_logo', 'vc_gitem_template_attribute_producer_logo', 10, 2 ); function vc_gitem_template_attribute_producer_logo( $value, $data ) { extract( array_merge( array( 'post' => null, 'data' => '', ), $data ) ); $termini = get_the_terms( $post->ID, 'producer' ); $logo = get_field('prlogo', $termini[0]); $image = '<img class="img-prod" src="' . $logo . '">'; return $image; }

y renderizar

 add_shortcode( 'producer_logo', 'vc_producer_logo_render' ); function vc_producer_logo_render($atts, $content, $tag) { return '{{producer_logo}}'; }
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!