更新(或许没有)之后的某段时间,当我要去分类列表页面时 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');
?>
这里有什么问题吗? 它适用于移动版,如何仅为移动设备激活他?不是桌面用的?
答案 0 :(得分:-1)
下载WordPress Debug Bar Plugin。它会在wp-admin栏中添加一个按钮,显示“Debug”。按下时,此按钮将显示调试面板。在此调试面板中找到“WP Query”的选项卡,它应该显示查询变量和正在使用的模板文件。
这可以帮助您找出正在注册的查询变量,以及实际加载了哪个模板文件。
答案 1 :(得分:-1)
在尝试实验之前,您应该阅读template_redirect的wordpress codex。
此操作挂钩在WordPress确定哪个之前执行 要加载的模板页面。
你真正在尝试的是:
if( !is_singular() ) {
如果页面不是单数,则表示不是模板page.php
或single.php
它应该执行代码。
因此当您在category.php
时,它会执行代码并将全局$wp_query
图层对象属性single
设置为true
。因此,无论您当时查看哪个模板,它都会将该页面设置为single
。
希望它有所帮助。