the_id the tag page obtener get_the_tags codex actual php wordpress-theming wordpress

php - tag - wordpress get the page id



WordPress: sobrescribe un código abreviado (2)

necesita llamar a remove_shortcode (); así: remove_shortcode(''jo_customers_testimonials_slider''); antes de agregarle un nuevo código corto para que lo "sobrescriba".

también deberás llamarlo después de que se haya ejecutado el tema principal para que activemos un gancho de acción llamado wp_loaded

function overwrite_shortcode() { function jo_customers_testimonials_slider_with_thumbnail( $atts ) { extract( shortcode_atts( array( ''limit'' => 5, "widget_title" => __(''What Are People Saying'', ''jo''), ''text_color'' => "#000" ), $atts ) ); $content = ""; $loopArgs = array( "post_type" => "customers", "posts_per_page" => $limit, ''ignore_sticky_posts'' => 1 ); $postsLoop = new WP_Query( $loopArgs ); $content = ""; $content .= ''...''; $content .= get_the_post_thumbnail( get_the_ID(), ''thumbnail'' ); $content .= ''...''; $content .= ''...''; wp_reset_query(); return $content; } remove_shortcode(''jo_customers_testimonials_slider''); add_shortcode( ''jo_customers_testimonials_slider'', ''jo_customers_testimonials_slider_with_thumbnail'' ); } add_action( ''wp_loaded'', ''overwrite_shortcode'' );

Tengo un tema que amplía el plugin Visual Composer con un control deslizante en la página principal. El control deslizante mostrará cinco testimonios de cinco clientes diferentes. Quiero agregar la imagen presentada de cada testimonio como la miniatura en el control deslizante.

Aquí está el código acortado del tema principal:

function jo_customers_testimonials_slider( $atts ) { extract( shortcode_atts( array( ''limit'' => 5, "widget_title" => __(''What Are People Saying'', ''jo''), ''text_color'' => "#000" ), $atts ) ); $content = ""; $loopArgs = array( "post_type" => "customers", "posts_per_page" => $limit, ''ignore_sticky_posts'' => 1 ); $postsLoop = new WP_Query( $loopArgs ); $content = ""; $content .= ''...''; $content .= ''...''; $content .= ''...''; wp_reset_query(); return $content; } add_shortcode( ''jo_customers_testimonials_slider'', ''jo_customers_testimonials_slider'' );

Mi archivo functions.php:

function jo_customers_testimonials_slider_with_thumbnail( $atts ) { extract( shortcode_atts( array( ''limit'' => 5, "widget_title" => __(''What Are People Saying'', ''jo''), ''text_color'' => "#000" ), $atts ) ); $content = ""; $loopArgs = array( "post_type" => "customers", "posts_per_page" => $limit, ''ignore_sticky_posts'' => 1 ); $postsLoop = new WP_Query( $loopArgs ); $content = ""; $content .= ''...''; $content .= get_the_post_thumbnail( get_the_ID(), ''thumbnail'' ); $content .= ''...''; $content .= ''...''; wp_reset_query(); return $content; } add_shortcode( ''jo_customers_testimonials_slider'', ''jo_customers_testimonials_slider_with_thumbnail'' );

En teoría, la función de mi archivo functions.php debe sobrescribir el shortcode del tema principal. Pero nada parece suceder cuando uso este código. ¿Qué estoy haciendo mal?

Editar:
Intentó este código, pero todavía no funciona.

function wpa_add_child_shortcodes(){ remove_shortcode(''jo_customers_testimonials_slider''); add_shortcode( ''jo_customers_testimonials_slider'', ''jo_customers_testimonials_slider_with_thumbnail'' ); } add_action( ''after_setup_theme'', ''wpa_add_child_shortcodes'' );

También cambiado
add_action( ''after_setup_theme'', ''wpa_add_child_shortcodes'' ); a
add_action( ''init'', ''wpa_add_child_shortcodes'' );
, pero no hay diferencia en el resultado.

Editar 2 (con solución):

Cambiar add_action( ''after_setup_theme'', ''wpa_add_child_shortcodes'' ); add_action( ''wp_loaded'', ''wpa_add_child_shortcodes'' ); resuelto.


Debes escribir este código en las funciones de tu hijo .php

add_action( ''after_setup_theme'', ''calling_child_theme_setup'' ); function calling_child_theme_setup() { remove_shortcode( ''parent_shortcode_function'' ); add_shortcode( ''shortcode_name'', ''child_shortcode_function'' ); } function child_shortcode_function( $atts) { $atts = shortcode_atts( array( ''img'' => '''', ''cat'' => '''', ''capt'' => '''', ''link'' => '''' ), $atts ); //YOUR OWN CODE HERE $imgSrc = wp_get_attachment_image_src( $atts[''img''], ''delicious-gallery'' ); $imgFull = wp_get_attachment_image_src( $atts[''img''], ''full'' ); $b = ''<div class="screen-item" data-groups=/'["''.strtolower(str_replace('' '', ''_'', $atts["cat"])).''", "all"]/'>''. ''<a href="''.$atts["link"].''" data-title="''.$atts["capt"].''" target="_blank"><img src="''.$imgSrc[0].''" alt="SCREEN" class="screenImg" /></a>''. ''<span>''.$atts["capt"].''</span>''. ''</div>''; //YOUR OWN CODE HERE return $b; }