✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Taxonomias do WordPress: Termos, Pais, Filhos

36

Criar taxonomias programaticamente parece ser um ponto que surge de vez em quando para quem está construindo soluções para outros no WordPress.

As próprias taxonomias podem até ser um pouco confusas; no entanto, descobri que o seguinte geralmente ajuda a solidificar um pouco o conceito:

As taxonomias hierárquicas são análogas às categorias; taxonomias não hierárquicas são análogas a tags.

Mas ainda assim, digamos que você esteja criando uma solução para alguém que precise importar informações como uma postagem e aplicar uma taxonomia a ela. Além disso, talvez você também queira aplicar uma taxonomia pai à postagem.

Como podemos fazer isso?

Taxonomias do WordPress: registro, pais, filhos e muito mais

A situação é mais ou menos assim:

Você tem uma postagem à qual uma taxonomia será aplicada. Se a taxonomia tiver um pai, também queremos aplicá-la ao post.

Para fazer isso, precisaremos de quatro (talvez cinco) funções:

  1. registrar_taxonomia
  2. wp_insert_term
  3. get_term_by
  4. wp_set_object_terms

Eu também acrescentarei que acho uma boa ideia usar repair_title_with_dashes se você for usar algum tipo de string de entrada não higienizada para o slug do tipo post (mas não é necessário se você não estiver, é claro ).

1 Registre a Taxonomia

Para este exemplo, vamos criar uma taxonomia para um tipo de postagem personalizado.

Como isso pode ser qualquer coisa com a qual você esteja trabalhando, vou usar uma variável chamada $postType para demonstrar o ponto.

<?php

register_taxonomy(
  'acme-category',
  $postType,
  [
      'label' => 'Acme Categories',
      'rewrite' => ['slug' => 'acme-category'],
      'capabilities' => [
          'manage_terms' => 'manage_options',
          'edit_terms' => 'manage_options',
          'delete_terms' => 'manage_options',
          'assign_terms' => 'manage_options',
      ],
      'hierarchical' => true,
  ]
);

É bastante simples, mas observe a referência de código :

Uma função simples para criar ou modificar um objeto de taxonomia com base nos parâmetros fornecidos. Ao modificar um objeto de taxonomia existente, observe que o $object_typevalor do registro original será substituído.

Geralmente, isso não é um problema, mas se você estiver trabalhando em um aplicativo grande ou pré-existente, é algo a ter em mente.

2 Insira um Termo para a Taxonomia

Em seguida, suponha que um $customPost seja disponibilizado para você e tenha uma função para recuperar seu nome, seu título ou alguma outra propriedade usada para identificá-lo (além de seu ID).

Isso pode ser passado para uma função ou pode ser disponibilizado por meio de qualquer uso de outras funções que o WordPress fornece. Neste exemplo, usarei uma  função getName() no objeto $customPost .

<?php

$termInfo = wp_insert_term(
  $customPost->getName(),
  'acme-category',
  ['slug' => sanitize_title_with_dashes($customPost->getName())]
);

Observe que também estou lendo o resultado da função em uma  variável $termInfo. Usaremos isso na próxima etapa para procurar o pai, se ele existir, e também aplicá-lo ao nosso objeto de postagem personalizado.

3 Procure o pai de um termo

Aqui, usaremos o termo que acabamos de criar para ver se existe um pai para ele. Observe que, se retornar false, a taxonomia não existe (ou se o termo não for encontrado).

Taxonomias do WordPress: Termos, Pais, Filhos

Para esse fim, você desejará adicionar uma condicional ao seu código para criá-lo, se necessário. Para manter o código conciso, porém, estou omitindo- o no seguinte código :

<?php

$parentTermInfo = get_term_by(
  'term_taxonomy_id',
  $termInfo['term_taxonomy_id'],
  'acme-category',
  ARRAY_A
);

Observe que armazeno o resultado do código acima em uma  variável $parentTermInfo. Isso é para que possamos passar isso para nossa função final para aplicar a informação pai ao nosso objeto post.

4 Aplicar o termo a uma postagem

Por fim, aplicaremos o termo (ou termos) se houver um objeto pai. Lembre-se que é aqui que a condicional será necessária. Simplificando, se não houver pai, o valor $parentTermInfo[‘parent’] não será necessário.

Taxonomias do WordPress: Termos, Pais, Filhos

Mas para o código abaixo, estamos assumindo que o temos.

<?php

wp_set_object_terms(
  $customPost->getId(),
  [
      $parentTermInfo['parent'],
      $termInfo['term_id'],
  ],
  'acme-category',
  true
);

Na referência de código, observe que isso criará o termo se ele ainda não existir; caso contrário, ele usará o que já está definido e o aplicará ao post.

E feito

De um modo geral, não é muito trabalho. Isso ajuda a garantir que você tenha uma compreensão clara de como funcionam as taxonomias e seus termos. Além disso, também ajuda saber como recuperar o pai de um determinado termo se for isso que você deseja fazer (caso contrário, a terceira etapa não será necessária).

Mas esperamos que os links e o código acima forneçam tudo o que você precisa para criar uma taxonomia e aplicá-la a uma postagem (assim como a um termo pai, se necessário).

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação