强制将Single.php重定向到索引

时间:2012-09-16 作者:Staffan Estberg

我想对single进行强制重定向。php索引,这样就永远无法通过直接访问访问它(网站的构建方式是检索索引页面上的所有内容,但由于ajax功能,仍然需要此页面可用)。我想这是在。htaccess?

编辑:我需要能够访问单曲。php通过来自索引页的ajax请求进行重定向,也就是说,重定向应该只在直接访问url时发生。

3 个回复
最合适的回答,由SO网友:Lalit Kaushik 整理而成

将此代码放入函数中。php文件

add_action(\'wp\', \'myfun\');
 function myfun(){ 
    if(is_single()){ 
            wp_redirect( home_url() ); exit;  
        }

  }
希望这个技巧能解决你的问题。祝您一切顺利;)

SO网友:Adam

你也可以试试,

add_action(\'wp\', \'myfun\');
function myfun(){ 

    if($_SERVER[\'HTTP_X_REQUESTED_WITH\']==\'XMLHttpRequest\' && is_single()){

       //ajax function here

    } elseif (if($_SERVER[\'HTTP_X_REQUESTED_WITH\']==\'\' && is_single())) {

            wp_redirect( home_url() ); exit;  

    }

}
或者这里有一个基于JavaScript的解决方案Ben Heller 在这个话题上,

if (window.top.location == window.location) {
   window.location.replace("<?php echo bloginfo(\'siteurl\');?>#work");
}
或根据建议techguy4web 您可以以相同的方式传递自定义参数并检查其是否存在。

一些支持材料:

SO网友:Mamaduka

您可以使用tamplate_include 过滤并强制WordPress检索索引。php而不是单一。php。

function mamaduka_template_include( $template ) {
    if ( is_single() )
        $template = get_index_template();

    return $template;
}
add_filter( \'template_include\', \'mamaduka_template_include\' );

结束

相关推荐

在PHP函数中使用AJAX响应

好的,我正在开发一个插件,但遇到了一个问题。下面是我正在做的:1。使用带有Plupload的metabox将图像上载到插件文件夹中的上载目录2。上载成功后,将调用脚本并在jCrop中初始化图像3。裁剪后的图像将使用带有ajax的表单进行处理并保存到插件文件夹中的另一个目录中4。图像处理成功后,将传回此新裁剪文件的文件名。这就是我被困的地方。我现在要做的是使用我传回的文件名,并在Wordpress中使用它进行进一步处理。到目前为止,一切都已得到处理,没有涉及任何特定于WP的代码。我现在想的是$.get 要将