Intereting Posts
Когда я должен использовать API Transients? Показать более 10 сообщений в файле author.php Перемещение моего текущего блога WordPress в субдомен Вызов связанных сообщений в пользовательский тип сообщения, таксономия и идентификатор тега Отправка вложений для отправки в медиа-библиотеку Возврат всех параметров переключателя при использовании дополнительных пользовательских полей Веб-сайт загружается дважды без необходимости Как сделать кнопку / меню администратора WP похожей на уведомления Jetpack? Изменить мета-описание на определенной странице? Виджет комментариев Facebook – идентификатор приложения Каково реальное намерение для admin-post.php? Как вы создаете архив для настраиваемого типа сообщений из плагина? Как упорядочить категории в Woocommerce, которые распространяются по нескольким страницам? Моя контактная форма – я изменил исходный код, но изменения не применяются Таксономия: почему «with_front» => false НЕ РАБОТАЕТ?

«Примечание: неопределенная переменная: содержимое» показывает

Я использую этот код, если для отображения связанной формы контента используется таксономия. Но он показывает «Примечание: неопределенная переменная: контент»

Вот мой код:

<?php /* Plugin Name: Related Post */ function pippin_related_posts($taxonomy = '') { global $post; if($taxonomy == '') { $taxonomy = 'post_tag'; } $tags = wp_get_post_terms($post->ID, $taxonomy); if ($tags) { $first_tag = $tags[0]->term_id; $second_tag = $tags[1]->term_id; $third_tag = $tags[2]->term_id; $args = array( 'post_type' => get_post_type($post->ID), 'posts_per_page' => 4, 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => $taxonomy, 'terms' => $second_tag, 'field' => 'id', 'operator' => 'IN', ), array( 'taxonomy' => $taxonomy, 'terms' => $first_tag, 'field' => 'id', 'operator' => 'IN', ), array( 'taxonomy' => $taxonomy, 'terms' => $third_tag, 'field' => 'id', 'operator' => 'IN', ) ) ); $related = get_posts($args); $i = 0; if( $related ) { global $post; $temp_post = $post; foreach($related as $post) : setup_postdata($post); $content .= '<ul class="related-posts-box">'; $content .= '<li><a href="' . get_permalink() . '" title="' . get_the_title() . '">' . get_the_title() . '</a></li>'; $content .= '</ul>'; endforeach; $post = $temp_post; } } return $content; } add_action('the_content', 'do_jt_related_posts'); function do_jt_related_posts() { if( is_singular('post') ) : echo get_the_content(); echo pippin_related_posts(); else : echo get_the_content(); endif; } 

Когда я выключаю debug от wordpress, это нормально, но когда вы включаете debug on, тогда он показывает эту ошибку. Любая идея, почему это показывается? Я получил эту форму кода здесь .

Solutions Collecting From Web of "«Примечание: неопределенная переменная: содержимое» показывает"

Хотя фактический вопрос не соответствует теме, я бы внес несколько изменений в код, чтобы сделать его более надежным и немного быстрее и менее ресурсоемким:

  • Добавить $content = ''; в верхней части функции, это позаботится об уведомлении: уведомление о неопределенной переменной

  • wp_get_post_terms() только идентификатор термина из wp_get_post_terms() . Это ускорит эту функцию, и вы не будете получать информацию, которую вы не собираетесь использовать. Просто добавьте array('fields' => 'ids' ) в качестве третьего параметра

  • Вместо использования $post global, который не очень надежен, используйте get_queried_object() чтобы получить текущую информацию о сообщении

  • Убрал счетчик, я не вижу необходимости в этом

  • WP_Query – это только личное предпочтение, так как вам не нужно настраивать postdata и использовать $post global

Вот функция, переписанная

 function pippin_related_posts($taxonomy = '') { $current_post = get_queried_object(); $content = ''; if($taxonomy == '') { $taxonomy = 'post_tag'; } $tags = wp_get_post_terms($current_post->ID, $taxonomy, array('fields' => 'ids' )); if ($tags) { $first_tag = $tags[0]; $second_tag = $tags[1]; $third_tag = $tags[2]; $args = array( 'post_type' => $current_post->post_type, 'posts_per_page' => 4, 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => $taxonomy, 'terms' => $second_tag, 'field' => 'id', 'operator' => 'IN', ), array( 'taxonomy' => $taxonomy, 'terms' => $first_tag, 'field' => 'id', 'operator' => 'IN', ), array( 'taxonomy' => $taxonomy, 'terms' => $third_tag, 'field' => 'id', 'operator' => 'IN', ) ) ); $related = new WP_Query($args); if( $related->have_posts() ) { while($related->have_posts() ) { the_post(); $content .= '<ul class="related-posts-box">'; $content .= '<li><a href="' . get_permalink() . '" title="' . get_the_title() . '">' . get_the_title() . '</a></li>'; $content .= '</ul>'; } wp_reset_postdata(); } } return $content; } add_action('the_content', 'do_jt_related_posts'); function do_jt_related_posts() { if( is_singular('post') ) : echo get_the_content(); echo pippin_related_posts(); else : echo get_the_content(); endif; }