#wordpress #wysiwyg
#wordpress #wysiwyg
Вопрос:
У меня установлен плагин execPHP. никаких проблем с этим, что касается выполнения php-кода через редактор … например, я попробовал следующий фрагмент PHP в редакторе WYSIWYG, и он работает…
[?php echo get_post_meta(1717, 'Ref', true); ?]
он выводит значение, хранящееся в пользовательском поле с названием REF. И 1717 — это текущий идентификатор записи, которую я редактировал.
вот в чем вопрос…
всякий раз, когда я пытался получить доступ к данным, связанным с post (обычно доступным в цикле WordPress), ничего не выводится. например, следующее ничего не дает…
[?php echo ("postid=" . $post->ID ); ?]
В редакторе WYSIWYG даже функция the_ID() ничего не выводит. Я думал, что мы все еще находимся в цикле WordPress, и на данный момент я могу использовать любые данные, связанные с публикацией.
моей целью было заменить [?php echo get_post_meta(1717, 'Ref', true); ?]
на [?php echo get_post_meta($post->ID, 'Ref', true); ?]
Что я делаю не так?
Ответ №1:
Вы можете попробовать функцию wordpress get_the_ID()
вместо доступа к переменной $post. Я думаю, вы также можете получить доступ к $ post, если поставите глобальный $ post
Комментарии:
1. спасибо, но это не помогло. [?php $mypostid = get_the_ID(); echo ( «mypostid:» . $mypostid); ?] ничего не выводит!
2. Ничего ? или просто mypostid: ?
3. выводится только mypostid: string . это потому, что он в кавычках. переменная часть (часть $mypostid ) ничего не выводит. итак, все, что я в итоге получаю, это следующее; mypostid:
4. Похоже, плагин execPHP не выполняется в цикле. Можете ли вы попробовать выполнить <?php $this_page_id = $wp_query->post->ID; echo $this_page_id ;?>
5. спасибо, но нет .. я сделал это [?php $ this_page_id = $wp_query-> post-> ID; echo «после wp_query …. » . $this_page_id ; ?] и я получаю это в конце после wp_query ….