儿童主题-如何在特定的地方添加新的小工具?

时间:2017-03-01 作者:Miguel Pinto

我一直在四处张望,我有点困惑,到目前为止还没有找到这个问题的答案。

我创造了一种全新的儿童皮肤。我的孩子皮肤只有2个文件style.css

/*
 Theme Name:   My theme child colormag
 Description:  My child modification from Colormag theme
 Author:       PalaNolho
 Template:     colormag
 Version:      1.0.0
*/

function.php

<?php
/* 
 * Child theme functions file
 * 
 * Your functions php code starts here just before ?>
 */

add_action( \'wp_print_styles\', \'enqueue_parent_styles\' ); //wp_enqueue_scripts
function enqueue_parent_styles() {
    wp_enqueue_style( \'parent-style\', get_template_directory_uri().\'/style.css\' );
}


function my_register_widget() {
    /* Register the \'primary\' sidebar. */
    register_sidebar(
        array(
            \'id\' => \'headerimagewidget\',
            \'name\' => __( \'(my) Widget over Header Image\' ),
            \'description\' => __( \'My widget to be displayed over the header image.\' ),
            \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
            \'after_widget\' => \'</div>\',
            \'before_title\' => \'<h3 class="widget-title">\',
            \'after_title\' => \'</h3>\'
        )
    );
    /* Repeat register_sidebar() code for additional sidebars. */
}

add_action( \'widgets_init\', \'my_register_widget\' );
小部件似乎配置正确,我可以在管理站点的“小部件”部分进行配置,因此,我现在需要的是添加代码,使其显示在页面上。

现在,我的问题来了。。。。我知道我需要添加什么代码。例如,我可以添加以下内容:

<div id="sidebar-headerimagewidget" class="sidebar">
    <?php dynamic_sidebar( \'headerimagewidget\' ); ?>
</div>
然而,我不知道在儿童主题中实际添加到哪里,因为我只有这个功能。php文件。

如果我对父主题进行这些更改,我会查看主题文件,查看要添加它的位置,然后添加它。但既然这是儿童主题。。。

是否需要将文件从父级复制到子级,然后进行所需的修改?有没有其他方法可以在不“直接”更改父主题代码的情况下将小部件添加到代码中?

1 个回复
最合适的回答,由SO网友:Sjoerd van Hout 整理而成

您应该将要编辑的文件从父主题复制到子主题。这样,您就可以自定义模板,而不必触及实际的主题。将您已有的代码粘贴到此模板文件中,就可以开始了。

以下链接包含有关创建子主题和修改模板文件的codex页面:https://codex.wordpress.org/Child_Themes#Template_Files

希望这有帮助。

相关推荐

My widgets do not save

每次我保存我的小部件并离开页面时,我的小部件都会消失。侧边栏已完全清空,不会保存任何更改。控制台或PHP日志中没有任何错误。如果我将小部件直接复制并保存在数据库中widgets_text, 它们将被显示,但我仍然无法在侧边栏中添加或删除任何内容。这只发生在我的右侧边栏上,左侧边栏工作正常,但它们都以相同的方式注册。这是我注册侧边栏的方式:function my_widgets_init() { register_sidebar( array ( \'name\'