【问题标题】:PHP & WordPress - Why does my code break when I use the add_action(), wp_head(), and wp_footer() functions and how do I fix it?PHP & WordPress - 当我使用 add_action()、wp_head() 和 wp_footer() 函数时,为什么我的代码会中断,我该如何解决?
【发布时间】:2015-06-20 06:50:43
【问题描述】:

这些函数位于我的 header.php 和 functions.php 文件中。我包括了 header.php、index.php、footer.php 和 functions.php 文件。我相信已经对错误进行了分区,它与 functions.php 中的第二个 add_action 以及 wp_head() 和 wp_footer() 函数有关。基本上,当我删除第二个添加操作或functions.php中的整个pt_theme_js功能块时,不会发生错误(页面不加载)。

我该如何解决这个错误,为什么会发生??

Header.php

<!doctype html>
<html class="no-js" lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><?php wp_title(); ?></title>
  </head>

  <?php wp_head(); ?>

  <body>
    <header class="row no-max pad main">
  <h1><a class='current' href="index.html">G</a></h1>
  <a href="" class="nav-toggle"><span></span>Menu</a>
  <nav>
    <h1 class="open"><a class='current' href="index.html">G</a></h1>
    <ul class="no-bullet">
      <li class="current parent"><a class='current' href="index.html">Portfolio</a>
        <ul class="sub-menu">
          <li><a href="item.html">Portfolio Item</a></li>
          <li><a href="item.html">Portfolio Item</a></li>
          <li><a href="item.html">Portfolio Item</a></li>
          <li><a href="item.html">Portfolio Item</a></li>
        </ul>
      </li>
      <li class="parent"><a href="blog.html">Blog</a>
        <ul class="sub-menu">
          <li><a href="single-post.html">Single Post</a></li>
          <li><a href="author.html">Author Page</a></li>
        </ul>
      </li>
      <li><a href="about.html">About</a></li>
      <li><a href="contact.html">Contact</a></li>
    </ul>
  </nav>
</header>

索引.php

<?php get_header(); ?>
<?php get_footer(); ?>

页脚.php

<div class="footer-clear"></div>
<footer class="row no-max pad">
  <ul class="social-links no-bullet">
    <li><a href="" class="icon icon-twitter"></a></li>
    <li><a href="" class="icon icon-facebook"></a></li>
    <li><a href="" class="icon icon-vimeo"></a></li>
    <li><a href="" class="icon icon-youtube"></a></li>
    <li><a href="" class="icon icon-linkedin"></a></li>
    <li><a href="" class="icon icon-github"></a></li>
    <li><a href="" class="icon icon-flickr"></a></li>
    <li><a href="" class="icon icon-google"></a></li>
    <li><a href="" class="icon icon-email"></a></li>
  </ul>            
  <p>Copyright <?php echo date('Y'); ?></p>
</footer>

    <?php wp_footer(); ?>
  </body>
</html>

函数.php

<?php

function wpt_theme_styles() {
    wp_enqueue_style('foundation_css', get_template_directory_uri() . '/css/foundation.css');
    wp_enqueue_style('normalize_css', get_template_directory_uri() . '/css/normalize.css');
    wp_enqueue_style('main_css', get_template_directory_uri() . '/style.css');
}

add_action('wp_enqueue_scripts', 'wpt_theme_styles');

function wpt_theme_js() {
    wp_enqueue_scripts('modernizr_js', get_template_directory_uri() . '/js/modernizr.js', '', '', false);
    wp_enqueue_scripts('foundation_js', get_template_directory_uri() . '/js/foundation.min.js', array('jquery'), '', true);
    wp_enqueue_scripts('main_js', get_template_directory_uri() . '/js/app.js', array('jquery', 'foundation_js'), '', true);
}

add_action('wp_enqueue_scripts', 'wpt_theme_js');

?>

【问题讨论】:

  • 我不知道这是否会解决所有问题,但是 应该是 标签内的最后一项。所以在 之前你应该调用你的 wp_head() 函数。

标签: php wordpress


【解决方案1】:

改变

wp_enqueue_scriptS( [...]

wp_enqueue_script( [...]

【讨论】:

  • 我认为这行不通。当我将“脚本”变成“脚本”时,它不会将任何文档加载到页面中。
【解决方案2】:

已解决。

我通过使用此演练解决了这个问题: http://www.wpbeginner.com/wp-tutorials/how-to-properly-add-javascripts-and-styles-in-wordpress/

我所做的是更改处理 JS 文件的 wp_enqueue_scripts,并在 wp_enqueue_script 之前首先使用 wp_register_script。 @rubenrp81 提到了将 wp_enqueue_scripts 更改为 wp_enqueue_script 之类的东西,答案就在我上面分享的链接中。

这是我生成的 functions.js 文件:

<?php

function basic_theme_styles() {
    wp_enqueue_style('foundation_css', get_template_directory_uri() . '/css/foundation.css');
    wp_enqueue_style('normalize_css', get_template_directory_uri() . '/css/normalize.css');
    wp_enqueue_style('main_css', get_template_directory_uri() . '/style.css');
}

add_action('wp_enqueue_scripts', 'basic_theme_styles');


function basic_theme_js() {
    wp_register_script('modernizr_js', get_template_directory_uri() . '/js/modernizr.js', array('jquery'), '', false);
    wp_enqueue_script('modernizr_js');

    wp_register_script('foundation_js', get_template_directory_uri() . '/js/foundation.min.js', array('jquery'), '1.1', true);
    wp_enqueue_script('foundation_js');

    wp_register_script('main_js', get_template_directory_uri() . '/js/app.js', array('jquery', 'foundation_js'), '', true);
    wp_enqueue_script('main_js');
}

add_action('wp_enqueue_scripts', 'basic_theme_js');
?>

【讨论】:

    【解决方案3】:

    尝试删除函数文件末尾的关闭“?>”。

    不保证,但通常没有。

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 2021-09-11
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 2017-06-19
      • 2018-08-23
      • 1970-01-01
      • 2017-06-14
      相关资源
      最近更新 更多