Wordpress get_category_by_slug возвращает false через ajax
Подскажите пожалуйста, не могу понять почему при ajax запросе get_category_by_slug возвращает false? Моя структура выглядит так, пишу плагин для ajax , при клике на пункт меню по классике должна загружаться статья, но там на строчке с get_category_by_slug возвращается false, хотя slug в него передается верный.
ajax.php
add_action('wp_ajax_get_cat', 'ajax_show_posts_in_cat');
add_action('wp_ajax_nopriv_get_cat', 'ajax_show_posts_in_cat');
function ajax_show_posts_in_cat() {
$link = !empty($_POST['link']) ? esc_attr($_POST['link']) : false;
$slug = $link ? wp_basename($link) : false;
$cat = get_category_by_slug($slug);
if(!$cat) {
die(var_dump($slug));
}
quert_posts( array(
'posts_per_page' => get_option('posts_per_page'),
'post_status' => 'publish',
'category_name' => $cat->slug
));
require plugin_dir_path(__FILE__) . 'tpl.php';
wr_die();
}
add_action( 'wp_enqueue_scripts', 'my_assets' );
function my_assets() {
//Подключаем js файл к плагину
wp_enqueue_script('script', plugins_url('ajax-script.js', __FILE__ ),array('jquery'));
// Добавляем на старницу объект для инициализации ajaxurl, в js файле после этого все обращения идут через myPlugin.
wp_localize_script('script', 'myPlugin', array(
'ajaxurl' => admin_url('admin-ajax.php'),
'name' => wp_get_current_user()->display_name
));
}
script.js
jQuery(document).ready(function($) {
// AJAX страницы
// Тело контента
const $bodyContent = $('.bodyContent');
//Клик по пункту меню
$('#primary-menu a').on('click', function(e) {
e.preventDefault();
//Выборка по ссылке
const linkCat = $(this).attr('href');
//забираем заголовок для вкладки
const titleCat = $(this).text();
//Указываем после клика новый заголовок вкалдки
document.title = titleCat;
//Размещаем в адресную строку содержимое ссылки
history.pushState({page_title: titleCat}, titleCat, linkCat);
ajaxCat(linkCat);
});
// Слушатель длял переключение страниц внутри браузера "Вперед/Назад"
window.addEventListener('popstate', function(event) {
this.document.title = event.state.page_title;
ajaxCat(location.href);
}, false);
function ajaxCat (linkCat) {
$bodyContent.animate({opacity: 0.5}, 300);
jQuery.post(
myPlugin.ajaxurl,
{
action: 'get_cat',
link: linkCat
},
function( response ){
$bodyContent
.html(response)
.animate({opacity: 1}, 300);
}
);
}
// END
});
$slug = $link ? wp_basename($link) : false; слаг возвращает верный, а вот на следующей строчки уже false. Заранее спасибо за помощь