关于模板路径

更新了wp和PageNavi后,我突然PageNavi的样式丢失了,花了几分钟看了下代码,作者是这样写的:

function pagenavi_stylesheets() {
   if(@file_exists(TEMPLATEPATH.'/pagenavi-css.css')) {
      wp_enqueue_style('wp-pagenavi', get_stylesheet_directory_uri().'/pagenavi-css.css', false, '2.50', 'all');
   } else {
      wp_enqueue_style('wp-pagenavi', plugins_url('wp-pagenavi/pagenavi-css.css'), false, '2.50', 'all');
   }   
}

TEMPLATEPATH指向了父模板的路径,但是get_stylesheet_directory_uri给的是子模板的链接。查了一下api,理了一下思路,应该先查看子目录下pagenavi-css.css,再看父模板下pagenavi-css.css,最后采用默认css,改代码如下:

function pagenavi_stylesheets() {
   if(@file_exists(STYLESHEETPATH.'/pagenavi-css.css')) {
      wp_enqueue_style('wp-pagenavi', get_stylesheet_directory_uri().'/pagenavi-css.css', false, '2.50', 'all');
   } else if(@file_exists(TEMPLATEPATH.'/pagenavi-css.css')) {
      wp_enqueue_style('wp-pagenavi', get_template_directory_uri().'/pagenavi-css.css', false, '2.50', 'all');
   } else {
      wp_enqueue_style('wp-pagenavi', plugins_url('wp-pagenavi/pagenavi-css.css'), false, '2.50', 'all');
   }   
}

总结:

  • STYLESHEETPATH 和 get_stylesheet_directory_uri 指向子模板
  • TEMPLATEPATH 和 get_template_directory_uri 指向父模板

给作者发了贴,不知道他会不会改。

6 Responses

  1. 怎么不更新了?

  2. Leo says:

    作者有回复了吗?

  3. Showfom says:

    我直接写死到 style.css 里,然后把 function pagenavi_stylesheets() 这个函数全部注释,防止头部输出太多东东 嘎嘎

  4. PageNavi会导致wp的文字出现乱码···

  5. Roc says:

    又见技术帖.