Torne-se membro para descarregar GRATUITAMENTE. Quiero unirme

User Post Type

User Post Type: Conectando Usuários a Listagens Personalizadas O User Post Type é uma solução inovadora que permite conectar usuários a um tipo de postagem, possibilitando a criação de listagens de usuários…Ver plugin

5,00

Versión: 0.7.3

Lo que adquieres al comprar tu plugin o theme:

  • Uso en webs ilimitadas
  • Libre de virus o código malicioso.
  • 100% Legal
Guaranteed Safe Checkout
Categoria:
Want a discount? Become a member!

User Post Type: Conectando Usuários a Listagens Personalizadas

O User Post Type é uma solução inovadora que permite conectar usuários a um tipo de postagem, possibilitando a criação de listagens de usuários e a filtragem desses dados como se fossem postagens comuns. Essa funcionalidade é especialmente útil para sites que necessitam de um diretório de usuários ou para fins de interação social.

Como Funciona

Para que essa conexão ocorra, é preciso entender que o FacetWP, uma ferramenta que possibilita a indexação e filtragem de postagens em WordPress, pode apenas tratar postagens regulares e personalizadas. Os usuários, por não serem considerados um tipo de postagem, necessitam da adição de um novo tipo oculto chamado upt_user. Para cada usuário, um novo post será criado automaticamente, e os dados dos usuários podem ser sincronizados com esse novo tipo para viabilizar o uso de facetas que filtram os usuários.

Começando com o User Post Type

Instalação do Plugin

A primeira etapa é baixar o plugin do seu painel de controle e instalá-lo como qualquer outro plugin do WordPress. Após essa instalação, é preciso ativá-lo.

Configuração Inicial

Uma vez ativado, você deve navegar até Configurações > User Post Type e clicar no botão “Sync now”. Esse comando vai sincronizar os dados dos usuários com o novo tipo de postagem criado. Você também pode copiar dados adicionais para a tabela wp_postmeta, o que é opcional e serve para operações mais avançadas.

Chaves Meta para Formatação

Abaixo está uma tabela que apresenta as chaves meta disponíveis e suas respectivas opções:

| Opção | Chave Meta |
|———————–|——————-|
| ID do Usuário | ID |
| Login do Usuário | user_login |
| Email do Usuário | user_email |
| URL do Usuário | user_url |
| Data de Registro | user_registered |
| Status do Usuário | user_status |
| Nome de Exibição | display_name |
| Funções do Usuário | roles |
| Campo Meta | meta-zipcode |
| Campo BuddyPress | bp-123 |

Exibindo Usuários

Para criar uma apresentação dos usuários em sua página, você deve usar a classe WP_Query, que é específica para Posts, e não deve ser confundida com WP_User_Query. Você pode configurar um argumento simples para exibir uma lista de até dez usuários publicados:

php
$args = [
'post_type' => 'upt_user',
'post_status' => 'publish',
'posts_per_page' => 10,
];
$query = new WP_Query($args);

Exibindo um Subconjunto de Usuários

Se você quiser mostrar somente os administradores, deve primeiro selecionar “Roles” na página de configurações e, em seguida, sincronizar. Depois, você pode configurar o meta_query para filtrar por funções específicas, como:

php
$args = [
'post_type' => 'upt_user',
'post_status' => 'publish',
'orderby' => ['title' => 'ASC'],
'posts_per_page' => 30,
'meta_query' => [
[
'key' => 'roles',
'value' => 'administrator',
'compare' => '='
],
],
];
$query = new WP_Query($args);

Esse método também pode ser adaptado para incluir múltiplas funções, como administradores e editores.

Exibindo Campos de Usuário

O User Post Type permite utilizar a função get_user_meta() do WordPress para recuperar informações sobre os usuários. Você deve substituir o $user_id pela chamada UPT()->get_user_id():

php
echo get_user_meta(UPT()->get_user_id(), 'your_field_name', true);

Se precisar acessar informações fora do loop, passe o ID do post disponível:

php
echo get_user_meta(UPT()->get_user_id(THE_POST_ID), 'your_field_name', true);

Para recuperar a foto de um usuário, utilize a função get_avatar():

php
echo get_avatar(UPT()->get_user_id(THE_POST_ID), 150);

Adicionando Facetas

Ao adicionar uma nova faceta nas configurações do FacetWP, você verá uma nova seção chamada “User Fields” dentro do dropdown de fonte de dados, possibilitando uma categorização ainda mais eficiente dos usuários.

Personalizando o Comportamento da Sincronização

Encontrando o Post Associado a um Usuário

Caso você já tenha um $user_id e precise encontrar o correspondente $post_id, poderá usar a seguinte função:

php
$post_id = (int) get_user_meta($user_id, UPT()->meta_key, true);

Prevenindo a Sincronização de Usuários Específicos

Se necessário, personalizações podem ser feitas para evitar que determinados usuários sejam sincronizados. Utilize o seguinte filtro:

php
add_filter('upt_sync_skip_user', function($bool, $user_id) {
if (1 === $user_id) {
return true;
}
return $bool;
}, 10, 2);

Somente Sincronizar Usuários com Funções Específicas

Esse código permite que você sincronize apenas usuários com determinadas funções:

php
add_filter('upt_sync_skip_user', function($bool, $user_id) {
$roles = (array) get_user_by('ID', $user_id)->roles;
$roles_to_preserve = ['student', 'teacher'];
$intersect = array_intersect($roles, $roles_to_preserve);
if (empty($intersect)) {
return true; // Não sincronizar este usuário
}
return $bool;
}, 10, 2);

Executando Ações Após a Sincronização de Postagem

Para registrar ações após um usuário ser sincronizado, você pode utilizar o seguinte gancho:

php
add_action('upt_sync_post', function($post_id, $user_id) {
// Ações a serem realizadas após um usuário ser sincronizado
}, 10, 2);

Sincronização Programada de Usuários

É possível programar a sincronização para ser executada em intervalos regulares:

php
add_action('mysite_sync_users', 'mysite_sync_users_callback');
function mysite_sync_users_callback() {
UPT()->sync->run_sync();
}
if (!wp_next_scheduled('mysite_sync_users')) {
wp_schedule_single_event(time() + 28800, 'mysite_sync_users'); // A cada 8 horas
}

Personalizações Adicionais

Você também pode personalizar os argumentos do tipo de post upt_user utilizando o filtro upt_post_type_args. Por exemplo, obrigando o menu de admin a aparecer sempre:

php
add_filter('upt_post_type_args', function($args) {
$args['show_in_menu'] = true;
return $args;
});

E se você deseja prevenir que postagens do tipo upt_user sejam acessadas publicamente, utilize:

php
add_filter('upt_post_type_args', function($args) {
$args['publicly_queryable'] = false;
return $args;
});

Além disso, é possível gerenciar quem tem acesso às configurações do User Post Type, utilizando o gancho upt_admin_settings_capability.

Considerações Finais

O User Post Type é uma ferramenta fantástica para desenvolver um site mais dinâmico e interativo, oferecendo personalizações e opções de filtragem que podem ser utilizadas em várias situações, como na criação de diretórios de usuários, comunidades online ou qualquer outra funcionalidade que exija a interação entre usuários e conteúdo. Com suas diversas opções de configuração e integração com o WordPress, pisca o olho para desenvolvedores que buscam uma solução versátil e potente para suas plataformas.

Avaliações

Não existem opiniões ainda.

Apenas clientes com sessão iniciada que compraram este produto podem deixar opinião.

Scroll to Top