Получить post_title в ajaxe

Никак не могу решить задачу...

add_action( 'wp_ajax_nopriv_my', 'my_ajax' );
function my_ajax(){
	$link = '';
	if(is_single()) {
		$link = ' <a href="'. get_the_permalink() .'" target="_blank" title="'. get_the_title() .'">🔗</a>';
	}
	echo $link;
}

подскажите как получить доступ к этим функциям в аякс запросе. Спасибо!

Заметки к вопросу:
Glum 4.8 лет назад

добавь id поста в параметры

mi13 4.8 лет назад

Пока нашел такое решение

//link add
if( isset( $_POST['post_id'] ) && !empty( $_POST['post_id'] ) ) {
	$post_id = $_POST['post_id'];
	$link = '<a href="'.get_the_permalink($post_id).'" target="_blank" title="'.get_the_title($post_id).'">#</a>';
}
//link add

и в форме

if(is_single()) {
	global $post;
	$id = $post->ID;
} else $id='';
<input type="hidden" name="post_id" value="<?php echo $id; ?>">

а на прямую в аяксе is_single и т.д. не работает.

mi13 4.8 лет назад

Нашел еще такое решение...

$return_url = wp_get_referer();
$link = '';
if(empty($return_url)) wp_send_json_error(null,403);
//link add
$post_id = url_to_postid($return_url);
if($post_id) $link = '<a href="'.get_the_permalink($post_id).'" target="_blank" title="'.get_the_title($post_id).'">#</a>';
//link add
Glum 4.8 лет назад

Функции, is_single, the_permalink, the_title работают в цикле, если вы хотите использовать их вне цикла, то они принимают параметр id либо объект поста. В вашем случае проще всего при отправке запроса через ajax добавить id поста в data и в экшене ловить его через $_request и потом использовать в функциях