Conectando uma função na barra lateral?

4

Estou procurando uma maneira de adicionar algum conteúdo ao topo da barra lateral quando estiver carregado.

Eu tentei conectar-me à ação get_sidebar como referenciado aqui , mas parece substituir a chamada da barra lateral e carregar minha função em vez disso? Existe uma solução melhor para fazer isso além de criar widgets? Eu gostaria de evitar isso se possível, mas eu não sou totalmente contra a ideia, um gancho seria melhor:)

Veja como fica o meu anzol: add_action('get_sidebar', 'social_links');

Nota: a função chamada é apenas cuspir uma lista de links de mídia social, nada muito chique ...

(Executando a versão mais recente (3.1) em um servidor MAMP localmente)

    
por Cole 19.03.2011 / 22:09

3 respostas

3

Carregar na parte inferior da barra lateral

Na maioria das barras laterais, você encontrará a ligação para o wp_meta() gancho de ação, onde você pode ligar na (na parte inferior) de uma barra lateral.

Coloque na parte superior da barra lateral

A função get_sidebar( $name ) chama a barra lateral que você deseja em seu modelo (isso permite ter barras laterais diferentes). Se você quiser adicionar coisas para por exemplo. Na parte superior da sua barra lateral, você está livre para usar o gancho de ação interno que é executado na parte superior de sua barra lateral, logo antes de a barra lateral ser carregada. Você pode, então, conectar tudo nessa chamada.

Exemplo:

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

O get_sidebar -hook está no topo da função get_sidebar() e aciona antes o arquivo da barra lateral é incluído. Isso significa que você deve usar este hook para adicionar conteúdo antes e wp_meta() para adicionar algo após a barra lateral. Se um tema estiver usando wp_meta() antes do final do modelo da barra lateral, então está errado.

    
por kaiser 20.03.2011 / 04:03
2

get_sidebar hook é chamado na função que obtém o arquivo de modelo da barra lateral, então esse não é o caminho certo a seguir.

Se você não deseja criar um widget, pode converter sua função em um shortcode e usá-la no widget de texto interno.

Como? simples, você diz que sua função recebeu o nome social_links e depois adiciona:

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

Uso? mais uma vez simples, adicione um widget de texto e coloque [SL] nele.

Apenas certifique-se de que sua função retorne a saída em vez de ecoá-la.

    
por Bainternet 19.03.2011 / 23:16
0

Em vez de retornar no wp_metahook, echo o exemplo do 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';
}

Veja: gancho wp_meta no Codex

    
por jepser 16.03.2012 / 06:15

Tags