Load ajax if is_home()

时间:2013-05-11 作者:Luka

我想用ajax在主页上展示一些简单的东西。问题是,当is\\u home()为true时,我想加载所有内容。Php,js,一切。

In funtions.php:

add_action(\'init\', \'pint_functions_separation_test\');
function pint_functions_separation_test(){
     if ( is_home() ) {
          require_once(\'functions_hometest.php\');
     }
}

functions_hometest.php:

<?php
if (file_exists("./wp-load.php") && file_exists("./wp-blog-header.php")){
    define(\'WP_USE_THEMES\', false);
    require_once("./wp-load.php");
    require_once("./wp-blog-header.php");
}

add_action( \'wp_ajax_nopriv_ajaxtest\', \'ajaxajaxtest_handle_request\' );
add_action( \'wp_ajax_ajaxtest\', \'ajaxajaxtest_handle_request\' );

function ajaxajaxtest_handle_request() {

  echo json_encode("evo me");

  die();

}
?>

JS:

<script>
jQuery(document).ready(function () {
    jQuery.ajax({
        url: \'<?php echo admin_url( \'admin-ajax.php\'); ?>\',
        data: ({
            \'action\': \'ajaxtest\',
        }),
        type: \'POST\',
        dataType: \'json\',
        success: function (data) {
            jQuery("#test_div_id").html(data);
        }
    });
});
</script>
主页上的Wordpress加载functions\\u hometest。php但ajax returns 0.

如果我调用php文件

 require_once(\'functions_hometest.php\');
一切都很好,但我不想让函数的加载保持在最低限度。这有什么意义吗?

还有,我试着打电话给

add_action(\'get_header\', \'pint_functions_separation_login\');
但我得到了同样的结果。

非常感谢。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

使用:

if ( is_home() or ( defined( \'DOING_AJAX\' ) && DOING_AJAX ) )
is_home() 退货TRUE 仅在前端,admin-ajax.php 另一方面是管理页面。因此,您需要检查这两个条件。

结束

相关推荐

如何使用AJAX按税种过滤帖子

我发现this post 这描述了如何使用Ajax过滤分类帖子,效果很好,但我也想以同样的方式过滤我的自定义分类法,但我无法让它正常工作。它显示了所有帖子,而不仅仅是分类法中的帖子。我知道菜单需要改成get_the_terms 而不是get_the_categories 但是我特别需要关于jQuery函数和底部php函数的更改的帮助。我尝试添加tax_query 调用我的分类法,但它仍然没有显示正确的帖子。有人能帮我指出正确的方向吗?