Я боюсь этой маленькой проблемы. У меня есть страница профиля пользователя, и я хочу изменить часть контента на основе того, является ли это моим собственным профилем для кого-то. Это мой код для добавления короткого кода, который в конечном итоге вызовет другие короткие коды.
function is_mine_func() { if (is_author() ) { echo 'it is my site'; // echo do_shortcode('[wpfepp_submission_form form="2"]' ); } else { echo 'its not your site'; //echo do_shortcode('[userpro template=postsbyuser postsbyuser_mode=grid]' ); } } add_shortcode( 'minminmin', 'is_mine_func' );
У меня такое чувство, что is_author – неправильный способ сделать это, так как я всегда получаю сообщение «не ваш сайт» независимо от того, являюсь ли я автором страницы или нет.
Должен ли is_author () не оценивать, являюсь ли я автором этой «страницы» или нет?
Для Codex is_author()
проверяет, находится ли вы на странице « is_author()
например, страница, в которой перечислены все сообщения / страницы / etc, которые данный автор создал). Если вы используете какой-либо другой тип страницы, is_author()
вернет false
.
То, что вы ищете, звучит по следующим направлениям:
if ( in_the_loop() ) { get_currentuserinfo(); print ( get_the_author() === $GLOBALS['current_user']->display_name ) ? 'It is my site.' : 'It is not my site.'; }
Этот код должен использоваться в Loop.
is_author()
get_the_author()
get_currentuserinfo()
in_the_loop()
Я бы попытался использовать идентификаторы автора, а не имя пользователя:
if ( get_current_user_id() == get_the_author_meta( 'ID' ) ) { echo "It is my site."; else { echo "It's not my site"; };