Загрузите ajax, если он находится дома()
Я хочу показать некоторые простые вещи на главной странице с помощью ajax. Проблема в том, что я хочу загрузить все, когда is_home() имеет значение true. Php, js, все.
В 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_hometest.php но ajax возвращается 0.
И если я вызову php-файл просто с помощью
require_once('functions_hometest.php');
Все работает отлично, но я не хочу держите загрузку функций на минимальном уровне. Есть ли в этом какой-то смысл?
ПС. Я пытался дозвониться с помощью
add_action('get_header', 'pint_functions_separation_login');
Но я получаю те же результаты.
Спасибо
1
1 answers
Использование:
if ( is_home() or ( defined( 'DOING_AJAX' ) && DOING_AJAX ) )
is_home()
возвращает TRUE
только на интерфейсе, admin-ajax.php
с другой стороны, это страница администратора. Поэтому вам нужно проверить оба условия.
2
Author: fuxia, 2013-05-11 12:28:00