Make a widget to my footer

时间:2015-11-25 作者:Konstantinos Natsios

我正在使用一个主题,开发人员不想帮助我在模板/页脚上制作一个小部件。php

当前此php文件中的代码是

<div class="bw-footer <?php echo isset( $class ) ? $class : \'\'; ?>">
    <div class="row">

        <?php
            $footer_logo = Bw::get_option(\'footer_logo\');

            if( $footer_logo ) {
                echo "<div class=\'footer-logo\'><img src=\'" . esc_attr( $footer_logo ) . "\' alt=\'\'></div>";
            }

            if ( has_nav_menu( \'footer\' ) ) {
                echo \'<nav class="navigation-footer">\';
                    wp_nav_menu( array( \'theme_location\' => \'footer\' ) );
                echo \'</nav>\';
            }

            echo \'<div class="footer-copy">\' . Bw::esc_kses( Bw::get_option( \'footer_text\' ), \'\' ) . \'</div>\';

            echo Bw::go_social( \'bw-social-uc\' );
        ?>

    </div>
    <div class="footer-after bw-end-label"><div class="after back-top"><i class="fa fa-angle-up"></i></div></div>
</div>
你能帮我为页脚创建一个小部件区域,这样我就可以添加一个“新闻稿”表单(类似于Mailpoter插件)?非常感谢。

使现代化这是“wp content/themes/themename/footer.php文件

<?php
/**
 * The template for displaying the footer.
 *
 * Contains the closing of the #content div and all content after
 *
 * @package Bad Weather
 */
?>
    </div> <!-- #container -->
</div> <!-- #wrapper -->

<?php wp_footer(); ?>

</body>
</html>

1 个回复
SO网友:s_ha_dum

您的主题似乎是通过连接到wp_footer 操作,因为没有其他明显的代码可以做到这一点。当然,这是基于您发布的有限代码。

这意味着您应该能够删除和替换主题使用的页脚代码。

remove_action(\'wp_footer\',\'callback_for_footer\');
add_action(\'wp_footer\',\'callback_for_new_footer\');
您需要一个类似以下内容的回调:

function callback_for_new_footer() { ?>
  <div class="bw-footer <?php echo isset( $class ) ? $class : \'\'; ?>">
    <div class="row"><?php
      // add components or remove them
      $footer_logo = Bw::get_option(\'footer_logo\');

      if( $footer_logo ) {
        echo "<div class=\'footer-logo\'><img src=\'" . esc_attr( $footer_logo ) . "\' alt=\'\'></div>";
      }

      if ( has_nav_menu( \'footer\' ) ) {
        echo \'<nav class="navigation-footer">\';
          wp_nav_menu( array( \'theme_location\' => \'footer\' ) );
        echo \'</nav>\';
      }

      echo \'<div class="footer-copy">\' . Bw::esc_kses( Bw::get_option( \'footer_text\' ), \'\' ) . \'</div>\';

      echo Bw::go_social( \'bw-social-uc\' ); ?>
    </div>
    <div class="footer-after bw-end-label"><div class="after back-top"><i class="fa fa-angle-up"></i></div></div>
  </div><?
}
您还可以通过使用挂钩优先级在主题页脚之前或之后添加元素:

add_action(\'wp_footer\',\'callback_for_new_footer\',5); // before (probably)
add_action(\'wp_footer\',\'callback_for_new_footer\',15); // after (probably)
您应该在child theme, 因为任何其他更改都将被覆盖,在这种情况下,您可以在templates/footer.php 在子主题中加载。That does depend on how the parent is written 当然,最重要的是它是否使用get_template_part() 加载文件。