如何在子主题中向Header.php添加代码?

时间:2012-02-27 作者:Rick Smith

我第一次创建了一个子主题,我对添加到标题中的代码有一些疑问。

在非子主题中,我将某些代码添加到标题中。php文件,如谷歌分析、谷歌网站管理员工具、买卖广告、Facebook开放图等。。。。

在儿童主题中如何做到这一点?是否创建标题。子主题中的php文件?如果是这样的话,如何做到这一点?它是否与我在css上使用的@import相同?

谢谢

3 个回复
最合适的回答,由SO网友:Brian Fegter 整理而成

我会在wp_head 行动我会把它放在一个插件中,以便从您的表示层中抽象出来。这允许扩展和更改主题。如果从一个主题迁移到下一个主题时遗漏了一个步骤,这也可以防止任何分析附带损害。

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
}

SO网友:Tom J Nowell

要修改子主题中的标题,请复制标题。php从父主题转换为子主题,然后对其进行修改。WordPress将看到您有一个标题。在子主题中使用php,并使用它代替父主题标题。php

当WordPress调用时,您在子主题中放置的任何模板文件将优先于父主题中的同一文件。

标签中的任何内容都应该使用Brians answer中的函数来完成。如果它是特定于主题的,可以将其放在名为functions的文件中。主题文件夹中的php,无需任何额外步骤。

SO网友:Diego Soto

幸亏Brian Fegter. 如果这个答案有帮助,请为Brian\'s answer 就在上面。

这是一个功能齐全的示例,说明了如何通过自己的插件将内容添加到“标题”中。在本例中,我为共享和类似按钮添加了Facebook Open Graph的属性。

只需使用示例代码开头的“Plugin Script”中指定的名称创建一个PHP文件,将其放在一个没有扩展名的同名文件夹中,然后将此文件夹复制到目标“/wp content/plugins”。

然后在“Wordpress”中,刷新“Plugins”,您将看到安装的新插件。只要激活它,你的页面就会开始包含开放图Facebook和Twitter的元数据。

enter image description here

VERY IMPORTANT: PHP文件必须用UTF-8编码,没有BOM表,并且末尾绝对没有字符。必须确保这一点。

<?php
/*
    Plugin Name: My Facebook Open Graph Protocol
    Plugin Script: my-facebook-open-graph-protocol.php
    Plugin URI: 
    Description: Add Facebook Open Graph Protocol to header
    Author: Diego Soto (Thanks to Brian Fegter)
    Donate Link: 
    License: GPL    
    Version: 0.1-alpha
    Author URI: https://wordpress.stackexchange.com/questions/43672/how-to-add-code-to-header-php-in-a-child-theme
    Text Domain: myfogp
    Domain Path: languages/
*/

/*  Copyright 2014 Diego Soto  (http://disientoconusted.blogspot.com.ar/)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License, version 2, as
    published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

add_action(\'wp_head\', \'wpse_43672_wp_head\');

function wpse_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
}
?>
任何对插件功能感兴趣的人。

标题将是当前页面名称和网站名称的串联。

如果存在名为“metadescription”的自定义字段,插件将尝试从此字段获取描述。否则,请从摘录中进行描述。

作为图像,插件尝试使用页面上featuredimage的缩略图。

结束

相关推荐

当尝试向我的登录页面添加一个css文件时,会出现“Headers Always Sent”?

我看过的每一篇关于这个主题的教程都已经过时了,所以我希望这里的人能帮助我。我想为我的wp登录设置样式。带有CSS文件的php页面。但我想以一种在Wordpress更新时不会被覆盖的方式来做。据我所知,根据我读到的图茨,在我的主题函数中使用函数添加它的最佳方式。php文件。不幸的是,人们建议使用的代码并不适合我。这是我添加的代码。<?php function custom_login() { echo \'<link rel=\"stylesheet\" href=\"wplog