diff --git a/themes/learninglab-site/inc/shortcodes.php b/themes/learninglab-site/inc/shortcodes.php
index fa9f514..aa7f552 100644
--- a/themes/learninglab-site/inc/shortcodes.php
+++ b/themes/learninglab-site/inc/shortcodes.php
@@ -1,5 +1,46 @@
= 2 && $membros_count <= 5) {
+ $classe_limite = ' limite-' . $membros_count;
+ } elseif ($membros_count > 5) {
+ $classe_limite = ' limite-mais-de-5';
+ }
+
+ $output = '
';
+
+ foreach ($membros as $membro) {
+ $nome_completo = get_the_title($membro->ID);
+ $partes = explode(' ', trim($nome_completo));
+ if (count($partes) <= 1) {
+ $nome_html = '
' . esc_html($nome_completo) . ' ';
+ } else {
+ $sobrenome = array_pop($partes);
+ $primeiro_nomes = implode(' ', $partes);
+ $nome_html = '
' . esc_html($primeiro_nomes) . '' . esc_html($sobrenome) . '';
+ }
+
+ $imagem = get_the_post_thumbnail($membro->ID, 'thumbnail', array('class' => 'attachment-thumbnail size-thumbnail wp-post-image'));
+
+ $output .= '
';
+ if ($imagem) {
+ $output .= '
' . $imagem . '
';
+ }
+ $output .= '
' . $nome_html . '
';
+ $output .= '
';
+ }
+
+ return $output . '
';
+}
+
function membros_shortcode($atts)
{
$atts = shortcode_atts(
@@ -16,12 +57,7 @@ function membros_shortcode($atts)
return '';
}
- if (!is_admin()) {
- wp_enqueue_style('learninglab_membro_style');
- }
-
- $output = '';
- $membros_count = 0;
+ $membros = array();
foreach ($slugs as $slug) {
if (empty($slug)) continue;
@@ -32,51 +68,70 @@ function membros_shortcode($atts)
'post_status' => 'publish',
'numberposts' => 1,
);
- $membros = get_posts($args);
+ $resultado = get_posts($args);
- if ($membros) {
- $post_obj = $membros[0];
- $post_id = $post_obj->ID;
-
- $nome_completo = get_the_title($post_id);
- $partes = explode(' ', trim($nome_completo));
- if (count($partes) <= 1) {
- $nome_html = '
' . esc_html($nome_completo) . ' ';
- } else {
- $sobrenome = array_pop($partes);
- $primeiro_nomes = implode(' ', $partes);
- $nome_html = '
' . esc_html($primeiro_nomes) . '' . esc_html($sobrenome) . '';
- }
+ if ($resultado) {
+ $membros[] = $resultado[0];
+ }
+ }
- $imagem = get_the_post_thumbnail($post_id, 'thumbnail', array('class' => 'attachment-thumbnail size-thumbnail wp-post-image'));
+ return learninglab_render_membros_grid($membros);
+}
+add_shortcode('membros', 'membros_shortcode');
- $output .= '
';
- if ($imagem) {
- $output .= '
' . $imagem . '
';
- }
- $output .= '
' . $nome_html . '
';
- $output .= '
';
+function membros_categoria_shortcode($atts)
+{
+ $atts = shortcode_atts(
+ array(
+ 'categoria' => '',
+ 'tipo' => 'atuais',
+ ),
+ $atts,
+ 'membros_categoria'
+ );
- $membros_count++;
- }
+ $categoria = sanitize_title($atts['categoria']);
+ $tipos = array(
+ 'atuais' => 'membro-atual',
+ 'egressos' => 'egresso',
+ 'lideres' => 'lider',
+ );
+
+ if ($categoria === '' || ($atts['tipo'] !== 'todos' && !isset($tipos[$atts['tipo']]))) {
+ return '';
}
- if ($membros_count === 2) {
- $output = str_replace('
', '
', $output);
- } elseif ($membros_count === 3) {
- $output = str_replace('
', '
', $output);
- } elseif ($membros_count === 4) {
- $output = str_replace('
', '
', $output);
- } elseif ($membros_count === 5) {
- $output = str_replace('
', '
', $output);
- } elseif ($membros_count > 5) {
- $output = str_replace('
', '
', $output);
+
+ $tax_query = array(
+ array(
+ 'taxonomy' => 'tipo_de_membro',
+ 'field' => 'slug',
+ 'terms' => $categoria,
+ 'include_children' => true,
+ ),
+ );
+
+ if ($atts['tipo'] !== 'todos') {
+ $tax_query['relation'] = 'AND';
+ $tax_query[] = array(
+ 'taxonomy' => 'tipo_de_membro',
+ 'field' => 'slug',
+ 'terms' => $tipos[$atts['tipo']],
+ 'include_children' => in_array($atts['tipo'], array('atuais', 'lideres'), true),
+ );
}
- $output .= '
';
+ $membros = get_posts(array(
+ 'post_type' => 'membro',
+ 'post_status' => 'publish',
+ 'posts_per_page' => -1,
+ 'orderby' => 'title',
+ 'order' => 'ASC',
+ 'tax_query' => $tax_query,
+ ));
- return $output;
+ return $membros ? learninglab_render_membros_grid($membros) : '';
}
-add_shortcode('membros', 'membros_shortcode');
+add_shortcode('membros_categoria', 'membros_categoria_shortcode');