Получить 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 поста в параметры