Onde estão armazenados os tipos personalizados do wordpress?

20

Onde os tipos personalizados são armazenados? Como quando um tipo personalizado é criado, em wp_posts, o tipo de postagem é definido como <new_custom_post_type>. Mas onde estão armazenados os detalhes do novo tipo de postagem personalizada?

Noor
fonte

Respostas:

14

Finalmente encontrei os dados do tipo de postagem personalizada. Ele é armazenado na tabela wp_post onde post_type = tipo de postagem personalizado (por exemplo, "produtos"). Os dados do campo (coluna) são armazenados em wp_postmeta onde a meta_key é o nome da coluna e meta_value é o valor da coluna.

Esta consulta retornará todos os dados associados ao tipo de postagem personalizado "produtos":

SELECT P.ID, P.post_title, M.meta_key, M.meta_value
FROM wp_posts AS P
INNER JOIN wp_postmeta AS M ON M.post_id = P.ID
WHERE P.post_type = 'products' and P.post_status = 'publish'
ORDER BY post_title, meta_key
Bob Jones
fonte
12

Os detalhes dos tipos de postagem personalizados não são armazenados em nenhum lugar, eles são carregados em tempo de execução com cada solicitação por meio de register_post_typechamadas.

Milo
fonte
hmmmm, ok, foi quando eu estava tentando procurar as informações no banco de dados, não as estava vendo, obrigado!
Noor
11
Isso não é totalmente verdadeiro.
Bainternet
3
Isso pode ser verdade na definição do tipo de postagem personalizado, mas não aborda a questão de onde os dados associados a cada instância de um tipo de postagem personalizado estão armazenados.
Bob Jones
@BobJones a pergunta menciona a wp_poststabela, então parece bastante claro que eles sabem onde os dados da postagem são armazenados. mas se você tiver uma interpretação diferente da pergunta, talvez deva adicionar sua própria resposta.
Milo
7

Como mencionado por @milo nesta resposta

Na verdade, os tipos de postagem não são armazenados separadamente no banco de dados ...

via SQL

você pode visualizar todos os tipos de postagem PUBLIC salvos usando a seguinte consulta sql

SELECT DISTINCT( post_type ) FROM wp_posts;

O que produzirá algo semelhante a:

+----------------------+
| post_type            |
+----------------------+
| attachment           |
| competition          |
| custom_css           |
| customize_changeset  |
| deprecated_log       |
| experts              |
| magazine             |
| nav_menu_item        |
| page                 |
| post                 |
| revision             |
+----------------------+

via WP CLI

Além disso, se você tiver acesso ao wp cli , poderá executar:

wp post-type list

O que produzirá algo como:

 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
 | name                | label                 | description  | hierarchical | public | capability_type     |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
 | post                | Posts                 |              |              | 1      | post                |
 | page                | Pages                 |              | 1            | 1      | page                |
 | attachment          | Media                 |              |              | 1      | post                |
 | revision            | Revisions             |              |              |        | post                |
 | nav_menu_item       | Navigation Menu Items |              |              |        | post                |
 | custom_css          | Custom CSS            |              |              |        | post                |
 | customize_changeset | Changesets            |              |              |        | customize_changeset |
 | deprecated_log      | Deprecated Calls      |              |              |        | post                |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
Craig Wayne
fonte
Essa é uma resposta melhor para o OP. THX.
MarsAndBack
4

Você pode usar a função get_post_typespara obter informações sobre todo e qualquer tipo de postagem ativo naquele momento. Para obter informações sobre um tipo de postagem específico, use get_post_type_object.

Manny Fleurmond
fonte
3
1 - Para fazer os tipos de pós retornados get_post_typesúnicos personalizados do parâmetro _builtinpode ser definido parafalse
Nicolai
1

O padrão do WordPress vem com alguns tipos de posts de amostra, como páginas, posts etc. O Wordpress deu a opção de criar também nossos próprios tipos de posts personalizados. As postagens padrão e personalizadas são armazenadas na tabela única "wp_posts", diferenciando todos os tipos de postagens com base na coluna "post_type" na tabela "wp_posts".

Por exemplo:
páginas -> post_type = "página",
testiminials -> post_type = "depoimentos"
etc

Para obter mais informações sobre este post_types, disponíveis na tabela "wp_postmeta".

Raj
fonte