Плагин сгенерировал 2 неожиданных выходных символа во время активации

Пытаюсь сделать свой первый виджет/плагин, плагин работает хорошо, но после активации выдает такую ​​ошибку:

«Плагин сгенерировал 2 неожиданных выходных символа во время активации. Если вы заметили сообщения «заголовки уже отправлены», проблемы с каналами синдикации или другие проблемы, попробуйте отключить или удалить этот плагин».

Затем, когда я захожу на сайт, он отправляет мне эту другую ошибку:

"Ошибка кодирования контента

Страница, которую вы пытаетесь просмотреть, не может быть отображена, поскольку она использует недопустимый или неподдерживаемый формат сжатия».

После этого, если я обновлю страницу, она позволит мне нормально войти, но одна и та же проблема повторяется каждый раз, когда я захожу на другую страницу.

Я не понимаю, что произошло, поэтому я буду признателен за вашу помощь, чтобы решить эту проблему.

Это код:

<?php


/*
Plugin Name: Mx Energy Partners - Post Relacionados
Plugin URI:
Description: Añade Post Relacionados al sitio Mx Energy Partners
Version: 1.0.0
Author: Arturo Valverde
Author URI:
Text Domain: mxtechnologypartners 
*/

?>

<?php
if (!defined('ABSPATH')) die();

class Mxnrgprtnrs_related_posts extends WP_Widget
{

  public function __construct()
  {
    $widget_ops = array(
      'classname' => 'mxnrgprtnrs_posts_relacionados',
      'description' => 'Añade Post Relacionados al sitio Mx Energy Partners',
    );
    parent::__construct(
      'mxnrgprtnrs_posts_relacionados',
      'MX Energy Partners - Posts Relacionados',
      $widget_ops
    );
  }



  public function widget($args, $instance)
  {

    if (post_type_exists('post')) : ?>      

      <div class = "related-posts blog padding-5">

        <h4>Artículos Relacionados:</h4>

        <ul class = "listado-blog">
          <?php

          $tags = get_the_tags();

          if ($tags) :
            $tag_ids = array();

            foreach ($tags as $tag) {
              $tag_ids[] = $tag->term_id;
            }

            $qryargs = array(
              'post_type' => 'post',
              'tag__in' => $tag_ids,
              'post__not_in' => array(get_the_ID()),
              'orderby' => 'post_date',
              'order' => 'DESC',
              'posts_per_page' => 4,
              'post_status' => 'publish',
            );

            $my_query = new WP_Query($qryargs);

            if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post();
          ?>

                <li class = "blog-item">

                  <div class = "img-post">
                    <a href = "<?php the_permalink(); ?>">
                      <?php the_post_thumbnail('thumbnail'); ?>
                    </a>
                  </div>

                  <div class = "contenido">

                    <div class = "meta full-width">
                      <a href = "<?php the_permalink(); ?>">

                        <h4><?php the_title(); ?></h4>

                      </a>

                      <span>
                        Autor:

                        <a href = "<?php echo get_author_posts_url(get_the_author_meta('ID')) ?>">
                          <?php echo get_the_author_meta('display_name'); ?>
                        </a>
                      </span>

                      <span>
                        <?php the_time('l d, F, Y'); ?>
                      </span>


                    </div>


                  </div>

                </li>


          <?php

              endwhile;
            endif;

          else :
            wp_reset_query();

          endif;



          wp_reset_query();
          ?>
        </ul>
      </div>

    <?php endif; ?>

<?php
  }


  public function form($instance)
  {
    // outputs the options form on admin
  }

  public function update($new_instance, $old_instance)
  {
    // processes widget options to be saved
  }
}

add_action('widgets_init', function () {
  register_widget('mxnrgprtnrs_related_posts');
});

?>

Попробуйте удалить ?> <?php после объявления плагина перед классом, нет необходимости закрывать и снова открывать, и тем самым вы выводите пробел.

Chris Haas 19.03.2022 14:39

Ты чертовски прав! Спасибо большое, я даже не заметил! Наконец-то я могу покоиться с миром.

Arturo Valverde 19.03.2022 18:04

Извините, я новичок в этом, как я могу отметить ваш ответ как правильный и закрыть вопрос?

Arturo Valverde 19.03.2022 18:08
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Удалите закрывающие и повторно открывающие теги PHP между информацией о плагине и объявлением класса.:

?>

<?php

Этот код, по сути, представляет собой пустое пространство, откуда берутся ваши дополнительные символы.

Другие вопросы по теме