# Erro 500! Incompatibilidade entre plugins

**URL:** <https://tainacan.discourse.group/t/erro-500-incompatibilidade-entre-plugins/2354>\
**Category:** Erros\
**Created:** [Abril 8, 2025, 5:56pm UTC](https://tainacan.discourse.group/t/erro-500-incompatibilidade-entre-plugins/2354 "2025-04-08T17:56:57Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rodrigo\_freire](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/rodrigo_freire/32/52_2.png) [@rodrigo\_freire](https://tainacan.discourse.group/u/rodrigo_freire)\
**Post date:** [Abril 8, 2025, 5:56pm UTC](https://tainacan.discourse.group/t/erro-500-incompatibilidade-entre-plugins/2354/1 "2025-04-08T17:56:57Z")

</div>

Recentemente me deparei com um erro ao tentar editar a descrição de uma coleção dentro do site em que atuo. Busquei este fórum para ver se já haviam relatado o erro e me deparei com o fato de que ainda não havia sido relatado, por isso, este registro.

Logo após verificar o problema com a edição da descrição da coleção, tentei verificar se a edição, criação e exclusão de um item também incorreria no problema, a resposta foi sim. Ao buscar o inspecionar elemento quando do momento da edição da descrição da coleção, deparei com a seguinte informação:

```auto
{
    "code": "internal_server_error",
    "message": "<p>H\u00e1 um erro cr\u00edtico no seu site.<\/p><p><a href=\"https:\/\/wordpress.org\/documentation\/article\/faq-troubleshooting\/\">Saiba mais sobre a como resolver problemas do WordPress.<\/a><\/p>",
    "data": {
        "status": 500,
        "error": {
            "type": 1,
            "message": "Uncaught TypeError: Argument 3 passed to TEC\\Events\\Calendar_Embeds\\Calendar_Embeds::disable_slug_changes() must be of the type array, object given, called in \/var\/www\/html\/forumeja\/public_html\/wp-includes\/class-wp-hook.php on line 324 and defined in \/var\/www\/html\/forumeja\/public_html\/wp-content\/plugins\/the-events-calendar\/src\/Events\/Calendar_Embeds\/Calendar_Embeds.php:163\nStack trace:\n#0 \/var\/www\/html\/forumeja\/public_html\/wp-includes\/class-wp-hook.php(324): TEC\\Events\\Calendar_Embeds\\Calendar_Embeds->disable_slug_changes()\n#1 \/var\/www\/html\/forumeja\/public_html\/wp-includes\/plugin.php(205): WP_Hook->apply_filters()\n#2 \/var\/www\/html\/forumeja\/public_html\/wp-includes\/post.php(4761): apply_filters()\n#3 \/var\/www\/html\/forumeja\/public_html\/wp-content\/plugins\/tainacan\/classes\/repositories\/class-tainacan-repository.php(182): wp_insert_post()\n#4 \/var\/www\/html\/forumeja\/public_html\/wp-content\/plugins\/tainacan\/classes\/repositories\/class-tainacan-collections.php(566): Tainacan\\Repositories\\Repository->insert()\n#5 \/var\/www\/h",
            "file": "\/var\/www\/html\/forumeja\/public_html\/wp-content\/plugins\/the-events-calendar\/src\/Events\/Calendar_Embeds\/Calendar_Embeds.php",
            "line": 163
        }
    },
    "additional_errors": []
}

```

Ao ler o código acima percebi que o mesmo referenciava um outro plugin que usamos na instância, o ‘[The Events Calendar – Plugin do WordPress | WordPress.org Brasil](https://br.wordpress.org/plugins/the-events-calendar/)’. Usando o GPT na tentativa de entender o erro, fui informado que o problema, na avaliação do chatbot, vinha mesmo do plugin ‘The Events Calendar’. O plugin estava se “enfiando” em um filtro ou hook do WordPress (`wp_insert_post`) que também é usado pelo Tainacan para criar ou editar coleções. O problema é que o Tainacan parece estar passando um **objeto** como terceiro argumento para esse hook, enquanto o The Events Calendar espera um **array**.

```auto
Uncaught TypeError: Argument 3 passed to Calendar_Embeds::disable_slug_changes()
must be of the type array, object given

```

Segundo o chatbot, essa é uma falha do plugin ‘The Events Calendar’, pois ele deveria verificar o tipo da variável antes de tentar operar sobre ela.

* * *

**Implementação da correção**

Como forma de contornar esse problema, mesmo que momentaneamente, realizei a edição do código do ‘The Events Calendar’ a partir do _editor de arquivos de plugin_ no Wordpress, alterando diretamente o arquivo _Calendar\_Embeds.php_, em que adicionei uma verificação com is\_array() antes da manipulação do parâmetro. Assim, o código ignora execuções que não atendem ao tipo esperado, evitando que o erro interrompa o funcionamento do Tainacan.

Código implementado:

```auto
public function disable_slug_changes( $can_change_slug, $post, $postarr ) {
    if ( ! is_array( $postarr ) ) {
        return $can_change_slug;
    }

```

Após a execução da alteração, ativei novamente o plugin e verifiquei se a criação/edição de coleções e itens voltou a funcionar e a resposta é sim! Realizei testes e não foi notado outros problemas.

**IMPORTANTE** - A mudança executada dentro do código do plugin não é permanente, uma vez que pode ser sobrescrita ao atualizar o plugin.

---

<div class="post-metadata">

**Author:** ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)\
**Post date:** [Abril 9, 2025, 6:10pm UTC](https://tainacan.discourse.group/t/erro-500-incompatibilidade-entre-plugins/2354/2 "2025-04-09T18:10:50Z")

</div>

Oi @rodrigo_freire…

A ironia aqui é que nesta função `disable_slug_changes` eles nem usam o 3º argumento… mas acabam precisando passar porque o 4º eles usam. O WordPress não define a tipagem na assinatura de funções como a `wp_insert_post`, mas outros plugins que usam filtros quem chamam a mesma podem usar então ficamos suscetíveis à isso. De qualquer forma, do nosso lado podemos sim forçar o tipo para garantir que isso não aconteça. Já fizemos um teste aqui e aparentemente não quebrou nada… mas se quiser ir usando antes do próximo lançamento:

> **[tainacan.zip](https://drive.google.com/file/d/1SNKSNR8gure6rm6zN2YUj0IuhTCC6y5w/view?usp=drive_link)**
>
> Google Drive file.

De qualquer forma realmente não é muito recomendado editar arquivos de plugins diretamente, por isso o ideal é no futuro atualizar o Tainacan e o próprio plugin dos Calendários.

---

<div class="post-metadata">

**Author:** ![erickml](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/erickml/32/2269_2.png) [@erickml](https://tainacan.discourse.group/u/erickml)\
**Post date:** [Abril 10, 2025, 6:07pm UTC](https://tainacan.discourse.group/t/erro-500-incompatibilidade-entre-plugins/2354/3 "2025-04-10T18:07:40Z")

</div>

Yo también me he encontrado con este error y precisamente tenía ese plugin instalado: The Events Calendar.

Probaré con la esta versión que proporciona @mateus y les comento como me fue.  
Gracias!

---

<div class="post-metadata">

**Author:** ![erickml](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/erickml/32/2269_2.png) [@erickml](https://tainacan.discourse.group/u/erickml)\
**Post date:** [Abril 16, 2025, 6:22pm UTC](https://tainacan.discourse.group/t/erro-500-incompatibilidade-entre-plugins/2354/4 "2025-04-16T18:22:50Z")

</div>

After a few days with the version shared by @mateus.m.luna I have not had again the problem of Tainacan crashing with ‘The Events Calendar’ plugin.

This mainly happened to me when adding x metadata to x collection.

Thanks in advance!
