Wordpress category.php无法在/?cat中工作

时间:2014-01-03 18:01:34

标签: php wordpress

更新(或许没有)之后的某段时间,当我要去分类列表页面时 mysite.com/?cat=10 我正在不是 category.php 模板 - 它会打开 single.php 为什么?

我试图制作 category-10.php (仅用于测试)但仍然来到 single.php 。 我应该在哪里看看我的问题? 问题出在我的ajax插件上,他的代码是:

<?php
/**
 * Plugin Name: Ajax content loader
 * Description: Load content througt ajax.
 * Version: 0.1
 * 
 */

 /**
  * Initialization. Add our script if needed on this page.
  */
 function ajax_content_init() {
    global $wp_query;

    // Add code to index pages.
    if( !is_singular() ) {  
        // Queue JS
        wp_enqueue_script(
            'load-posts',
            plugin_dir_url( __FILE__ ) . 'js/load-posts.js',
            array('jquery'),
            '1.0',
            true
        );

        $wp_query->is_single = true;
    }
 }
 add_action('template_redirect', 'ajax_content_init');

 ?>

这里有什么问题吗? 它适用于移动版,如何仅为移动设备激活他?不是桌面用的?

2 个答案:

答案 0 :(得分:-1)

下载WordPress Debug Bar Plugin。它会在wp-admin栏中添加一个按钮,显示“Debug”。按下时,此按钮将显示调试面板。在此调试面板中找到“WP Query”的选项卡,它应该显示查询变量和正在使用的模板文件。

这可以帮助您找出正在注册的查询变量,以及实际加载了哪个模板文件。

答案 1 :(得分:-1)

在尝试实验之前,您应该阅读template_redirect的wordpress codex。

  

此操作挂钩在WordPress确定哪个之前执行   要加载的模板页面。

你真正在尝试的是:

if( !is_singular() ) {

如果页面不是单数,则表示不是模板page.phpsingle.php它应该执行代码。

因此当您在category.php时,它会执行代码并将全局$wp_query图层对象属性single设置为true。因此,无论您当时查看哪个模板,它都会将该页面设置为single

希望它有所帮助。