Это для людей, создающих системы комментирования WordPress. Этот код определяет сообщение после нажатия «Ответить».
Цель состоит в том, чтобы получить либо имя, введенное в форме «автора», либо идентификатор пользователя (через php), в зависимости от того, вошел ли человек в систему.
success: function(data, textStatus){
if(data=="success"){
var avatar = "<?php echo get_avatar($id_or_email, 48,'/Avatar.png' ); ?>";
var author = "<?php if ( is_user_logged_in() ) : ?><?php echo $user_identity; ?><?php else :?>"jQuery('#author').val() ;
var authorurl = "<?php the_author_meta( 'user_url'); ?>";
var timestamp = "<?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?>";
var commenttext = jQuery('#comment').val();
jQuery('<li class="new-post">'+'<div class="comment-author vcard">'+avatar+
'<div class="comment-meta">'+'<b>'+'<a href="authorurl">'+author+'</b>'+'</a>'+
'<div class="comment-time-stamp">'+timestamp+'</div>'+'</div>'+'</div>'+
'<div class="comment-text">'+'<p>'+'<pre class="new-post-pre">'+commenttext+'</pre>'+'</p>'+'</div>'+'</li>').insertBefore(respond);
statusdiv.html('<p class="ajax-success" ></p>');
}
Вот где проблема:
var author = "<?php if ( is_user_logged_in() ) : ?><?php echo $user_identity; ?><?php else :?>"jQuery('#author').val() ;
Вы пропали endif
в вашем коде PHP и двойной кавычки в неправильном месте (если я хорошо понимаю вопрос):
var author = <? if ( is_user_logged_in() ) : echo '"'.$user_identity.'"'; else: ?> jQuery('#author').val() <? endif; ?>;
Других решений пока нет …