¿Enganchar una función a la barra lateral?

4

Estoy buscando una manera de agregar contenido a la parte superior de la barra lateral cuando se carga.

He intentado enganchar a la acción get_sidebar como referenciada aquí , pero parece anular la llamada y la carga de la barra lateral mi función en cambio? ¿Hay una mejor solución para hacer esto además de crear widgets? Me gustaría evitar eso si es posible, pero no estoy totalmente en contra de la idea, un gancho sería lo mejor :)

Así es como se ve mi gancho: add_action('get_sidebar', 'social_links');

Nota: la función llamada es simplemente escupir una lista de enlaces de redes sociales, nada demasiado sofisticado ...

(Ejecutando la última versión (3.1) en un servidor MAMP localmente)

    
pregunta Cole 19.03.2011 - 22:09

3 respuestas

3

Cargar en la parte inferior de la barra lateral

En la mayoría de las barras laterales, encontrará la llamada al gancho de acción wp_meta() , donde puede enlazar en el (en su mayoría inferior) de una barra lateral.

Cargar encima de la barra lateral

La función get_sidebar( $name ) llama a la barra lateral que desea en su plantilla (esto permite tener diferentes barras laterales). Si desea agregar cosas a por ejemplo. En la parte superior de la barra lateral, puedes usar el enlace de acción interno que se ejecuta en la parte superior de la barra lateral, justo antes de que se cargue la barra lateral. Luego puedes conectar todo a esta llamada.

Ejemplo:

function add_before_my_siderbar( $name ) 
{
    echo "Loaded on top of the {$name}-sidebar";

    // Example that uses the $name of the sidebar as switch/trigger
    'main' === $name AND print "I'm picky and only echo for special sidebars!";
}
add_action( 'get_sidebar', 'add_before_my_siderbar' );

Notas sobre temas

La señal get_sidebar -hook está en la parte superior de la función get_sidebar() y activa antes el archivo de la barra lateral se incluye. Esto significa que debe usar este enlace para agregar contenido antes y wp_meta() para agregar algo después de la barra lateral. Si un tema usa wp_meta() antes del final de la plantilla de barra lateral, entonces lo está haciendo mal.

    
respondido por el kaiser 20.03.2011 - 04:03
2
Se llama a

get_sidebar hook en la función que obtiene el archivo de plantilla de la barra lateral, por lo que no es el camino correcto a seguir.

Si no está preparado para crear un widget, puede convertir su función en un shortcode y usarlo en el widget de texto incorporado.

¿Cómo? simple, usted dice que su función se llama social_links y luego agrega:

add_shortcode('SL', 'social_links'); 
// and to make sure Wordpress calls shortcode in sidebars
add_filter('widget_text', 'do_shortcode');

¿Uso? una vez más simple, agrega un widget de texto y coloca [SL] en él.

Solo asegúrate de que tu función devuelva la salida en lugar de repetirla.

    
respondido por el Bainternet 19.03.2011 - 23:16
0

En lugar de volver sobre wp_metahook, repita el ejemplo del resultado:

add_action('wp_meta','my_function')

function my_function(){
   //no return 'hello';
   //try this and it will shows at the top of the sidebar
   echo 'hello';
}

Ver: wp_meta hook en Codex

    
respondido por el jepser 16.03.2012 - 06:15

Lea otras preguntas en las etiquetas