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');