Получить 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;
}
подскажите как получить доступ к этим функциям в аякс запросе. Спасибо!
Пока нашел такое решение
//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 и т.д. не работает.
Нашел еще такое решение...
$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
Функции, is_single, the_permalink, the_title работают в цикле, если вы хотите использовать их вне цикла, то они принимают параметр id либо объект поста. В вашем случае проще всего при отправке запроса через ajax добавить id поста в data и в экшене ловить его через $_request и потом использовать в функциях
добавь id поста в параметры