Como adicionar código ao Header.php em um tema filho?

9

Estou criando um tema filho pela primeira vez e fiz algumas perguntas sobre o código adicionado ao cabeçalho.

Em um tema não filho, há um determinado código que adiciono ao meu arquivo header.php, como o Google Analytics, as ferramentas do Google para webmasters, a compra de anúncios de venda, o gráfico aberto do Facebook, etc.

Como você faz isso em um tema filho? Você cria um arquivo header.php no seu tema filho? Se sim, como isso é feito? É o mesmo que o @import que usei no css?

Obrigado.

    
por Rick Smith 27.02.2012 / 16:40

3 respostas

15

Eu entraria na ação wp_head . Eu colocaria isso em um plugin para abstrai-lo da sua camada de apresentação. Isso permite escalabilidade e mudança de temas. Isso também impede qualquer dano colateral de análise se uma etapa for perdida na migração de um tema para o próximo.

add_action('wp_head', 'wpse_43672_wp_head');
function wpse_43672_wp_head(){
    //Close PHP tags 
    ?>
    ADD YOUR PLAIN HTML CODE HERE
    <?php //Open PHP tags
}
    
por Brian Fegter 27.02.2012 / 16:47
4

Para modificar o cabeçalho em um tema filho, copie o header.php do tema pai para o tema filho e modifique-o. O WordPress vai ver que você tem um header.php no seu tema filho e usa isso em vez do tema pai header.php

Qualquer arquivo de modelo que você colocar no tema filho terá prioridade sobre o mesmo arquivo no tema pai quando chamado pelo WordPress.

Tudo o que entra na tag deve ser feito usando algo como a função na resposta do Brian. Se for um tema específico, você pode colocá-lo em um arquivo chamado functions.php na pasta do seu tema sem nenhuma etapa extra.

    
por Tom J Nowell 27.02.2012 / 17:36
2

Obrigado ao Brian Fegter . Se esta resposta ajudar, por favor classifique para a resposta de Brian aqui mesmo em cima.

Este é um exemplo totalmente funcional de como adicionar coisas ao "cabeçalho" pelo seu próprio plugin. Neste caso, estou adicionando as propriedades do Facebook Open Graph para os botões Share e Like.

Basta criar um arquivo PHP com o nome especificado em "Script de Plug-in" no início do código de amostra, colocá-lo em uma pasta com o mesmo nome sem a extensão, obviamente, e copiar essa pasta para o destino "/ wp -content / plugins ".

Em seguida, dentro do "Wordpress", atualize "Plugins" e você verá o novo plugin instalado. Basta ativá-lo e suas páginas começarão a conter os metadados do Open Graph Facebook e Twitter.

MUITOIMPORTANTE:OarquivoPHPdevesercodificadoemUTF-8semBOM,enãodeveterabsolutamentenenhumcaracterenofinal.Devegarantirisso.

<?php/*PluginName:MyFacebookOpenGraphProtocolPluginScript:my-facebook-open-graph-protocol.phpPluginURI:Description:AddFacebookOpenGraphProtocoltoheaderAuthor:DiegoSoto(ThankstoBrianFegter)DonateLink:License:GPLVersion:0.1-alphaAuthorURI:https://wordpress.stackexchange.com/questions/43672/how-to-add-code-to-header-php-in-a-child-themeTextDomain:myfogpDomainPath:languages/*//*Copyright2014DiegoSoto(http://disientoconusted.blogspot.com.ar/)Thisprogramisfreesoftware;youcanredistributeitand/ormodifyitunderthetermsoftheGNUGeneralPublicLicense,version2,aspublishedbytheFreeSoftwareFoundation.Thisprogramisdistributedinthehopethatitwillbeuseful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNUGeneralPublicLicenseformoredetails.YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealongwiththisprogram;ifnot,writetotheFreeSoftwareFoundation,Inc.,51FranklinSt,FifthFloor,Boston,MA02110-1301USA*/add_action('wp_head','wpse_43672_wp_head');functionwpse_43672_wp_head(){$title=get_the_title()." &lsaquo; ". get_bloginfo( "name", "display" );

    $src = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()), array( 90,55 ), false, "" ); 

    $face_metad = get_post_meta(get_the_ID(), "metadescription", true);

    $twitter_metad = get_post_meta(get_the_ID(), "metadescription140", true);
    if (empty($twitter_metad)) 
        $twitter_metad = $face_metad;

    //Close PHP tags 
    ?>    
    <meta property="og:title" content="<?php echo esc_attr($title); ?>" />
    <meta property="og:image" content="<?php echo esc_attr($src[0]); ?>" />
    <meta property="og:url" content="<?php the_permalink(); ?>" />
    <meta property="og:description" content="<?php if (!empty($face_metad)) echo esc_attr($face_metad); else the_excerpt(); ?>" />

    <meta name="twitter:title" content="<?php echo esc_attr($title); ?>" />
    <meta name="twitter:image" content="<?php echo esc_attr($src[0]); ?>" />    
    <meta name="twitter:url" content="<?php the_permalink(); ?>" />
    <meta name="twitter:description" content="<?php if (!empty($twitter_metad)) echo esc_attr($twitter_metad); else the_excerpt(); ?>" />
    <?php //Open PHP tags
}
?>

Qualquer pessoa que esteja interessada na funcionalidade do plug-in.

  • O título será a concatenação do nome da página atual e o nome do site.

  • Se um campo personalizado chamado "metadescription" existir, o plug-in tentará para tirar a descrição deste campo. Caso contrário, leve o descrição do excerto.

  • Como a imagem, o plug-in tenta usar a miniatura do recurso imagem na página.

por DiegoSoto 14.08.2014 / 01:12