¿Cómo convertir un shortcode en código PHP?
Necesito agregar un shortcode en uno de los archivos PHP (reemplazando un código de barra de búsqueda que está hardcodeado en el archivo header PHP). ¿Cómo agrego un shortcode al archivo header PHP?
Este es el código que estoy revisando:
<?php if ( (is_front_page()) && (of_get_option('g_search_box_id') == 'yes') ) { ?>
<div class="search-form-wrap hidden-phone" data-motopress-type="static" data-motopress-static-file="static/static-search.php">
<?php get_template_part("static/static-search"); ?>
</div>
<?php } ?>
Y necesito eliminar el search-form-wrap con un shortcode diferente de formulario de búsqueda (para mls).
Aquí está el shortcode con el que tengo que trabajar:
[idx_search link="###########" detailed_search="off" destination="local" user_sorting="off" location_search="on" property_type_enabled="on" theme="hori_round_light" orientation="horizontal" width="730" title_font="Arial" field_font="Arial" border_style="rounded" widget_drop_shadow="off" background_color="#ffffff" title_text_color="#000000" field_text_color="#545454" detailed_search_text_color="#234c7a" submit_button_shine="shine" submit_button_background="#59cfeb" submit_button_text_color="#000000"]
En general, insertar y ejecutar shortcodes directamente en los archivos de plantilla no es una buena idea y no es para lo que están diseñados los shortcodes. En su lugar, deberías usar la función de callback del shortcode como cualquier otra función de PHP o etiqueta de plantilla.
Por ejemplo, imaginemos este shortcode:
add_shortcode('someshortocode', 'someshortocode_callback');
function someshortocode_callback( $atts = array(), $content = null ) {
$output = "¡Echo!!!";
return $output;
}
Entonces, en lugar de hacer esto:
echo do_shortcode( '[someshortocode]' );
Deberías hacer esto:
echo someshortocode_callback();
Obviamente, para usar la función de callback del shortcode como etiqueta de plantilla, el shortcode debe estar codificado de forma que permita este uso, por lo que puede que no sea posible (aunque nunca he encontrado un shortcode que no permita el uso directo del callback, puede existir). En este caso, y solo en este caso, usaría do_shortcode( '[someshortcode]' )
(realmente nunca lo usaría).
Ten en cuenta que los shortcodes son marcadores de posición de PHP para usarse donde no se puede insertar código PHP, por eso no tiene sentido para mí usarlos en scripts PHP.

Sí, el shortcode que estoy usando no estará disponible para hacer el método preferido que recomiendas.
Y NO QUIERO usar el shortcode en el archivo php. Si hubiera una manera de eliminar la barra de búsqueda que está codificada en el php y poner el shortcode que tengo que usar en el encabezado, encima de la imagen rotatoria, eso funcionaría genial para mí.

Utiliza do_shortcode
para mostrar un shortcode en tu plantilla.
echo do_shortcode( '[theshortcode]' );

Vale, reemplacé todo el código que publiqué con el de echo, no funciona en absoluto.

Algunos shortcodes no funcionan fuera del contexto de una publicación en el bucle. Sin saber exactamente qué hace el shortcode y cómo, no puedo ofrecer una solución.

Es un shortcode de mls para buscar bienes raíces y es bastante enrevesado, editaré el OP con el código del shortcode.

Solo usa el callback que está asignado para el shortcode. do_shortcode()
es... meh.
