xarxaprod-wp-theme/template-parts/section-last-convos.php

162 lines
7.8 KiB
PHP

<?php
/**
* Template part for displaying "convos" and widgets
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Xarxaprod_theme
*/
?>
<section id="convos" class="last-convos ultimes-convocatories">
<?php
// Detect plugin. For use on Front End only.
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
// check for plugin using plugin name
if ( is_plugin_active( 'xarxaprod-wp-plugin/xarxaprod-wp-plugin.php' ) ) {
//plugin is activated do
?>
<header>
<?php //begin any query
// begin populate WP_Query if is custom post type xarxaprod-associat
if ( get_post_type( ) == 'xarxaprod-associat' ){
$slug_espai_associat =get_post_field( 'post_name', get_post() ) ;
// https://developer.wordpress.org/reference/functions/get_posts/
// query ACF relationsihp
// https://wordpress.stackexchange.com/a/213375
$convos_query = new WP_Query(
array(
'post_type' => 'xarxaprod-convo',
'posts_per_page' => '3',
'order_by' => 'meta_value', //order by meta value
'meta_key' => 'xxp_convo_apply_end', // order by meta key convo apply end
'order' => 'ASC', //order ascendent
'meta_query' => array(
array( //filter results show today and later
'key' => 'xxp_convo_apply_end',
'value' => date("Y-m-d"), // consider using date_i18n() https://developer.wordpress.org/reference/functions/date_i18n/
'compare' => '>=', //show events today and later
'type' => 'DATE',
),
array( //filter convos with relation to espai associat
'key' => 'xxp_convo_espai_associat', // name of the custom field
'value' => '"' . get_the_ID() . '"', // in ACF select Return format "Post ID"
'compare'=> 'LIKE', // matches exaclty "123", not just 123. This prevents a match for "1234"
)
)
)
);
?>
<h2> <a href="<?php echo home_url( '/convos/?xxp_convo_center=' ) . $slug_espai_associat ;?>"><?php echo esc_html__('Últimes convocatòries', 'xarxaprod'); ?> de <?php the_title(); ?></a></h2>
</header>
<main class="xarxaprod-last-convos xarxaprod-ultimes-convocatories">
<?php } //end populate WP_Query custom post type xarxaprod-associat
else { // begin populate WP_Query if others
// https://developer.wordpress.org/reference/functions/get_posts/
// https://www.advancedcustomfields.com/resources/true-false/
$convos_query = new WP_Query(
array(
'post_type' => 'xarxaprod-convo',
'posts_per_page' => '3',
'order_by' => 'meta_value', //order by meta value
'meta_key' => 'xxp_convo_apply_end', // order by meta key convo apply end
'order' => 'ASC', //order ascendent
'meta_query' => array(
array( //filter results show today and later
'key' => 'xxp_convo_apply_end',
'value' => date("Y-m-d"), // consider using date_i18n() https://developer.wordpress.org/reference/functions/date_i18n/
'compare' => '>=', //show events today and later
'type' => 'DATE',
),
)
)
);
?>
<h2> <a href="<?php echo site_url() . '/convocatories' ;?>"><?php echo esc_html__('Últimes convocatòries', 'xarxaprod'); ?></a></h2>
</header>
<main class="xarxaprod-last-convos xarxaprod-ultimes-convocatories">
<?php }; //end populate WP_Query with others ?>
<?php //begin loop WP_Query ?>
<?php if ( $convos_query->have_posts() ) : ?>
<?php while ( $convos_query->have_posts() ) : $convos_query->the_post(); ?>
<div class="xarxaprod-card-each xarxaprod-convo-info-field">
<header class="entry-header">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark" class="">
<?php the_title( '<h3 class="entry-title">', '</h3>' ); ?>
</a>
</header><!-- .entry-header -->
<section class="xarxaprod-convo-info-fields">
<ul>
<li class="xarxaprod-convo-info-date">
<?php if( get_field('xxp_convo_apply_begin') || get_field('xxp_convo_apply_end') ): ?>
<dt>Termini</dt>
<dd class="xarxaprod-label item-xxp_convo_dates">
<?php if( get_field('xxp_convo_apply_begin') ): ?>
<span class="item-xxp_convo_apply_begin">del <?php the_field('xxp_convo_apply_begin'); ?> </span>
<?php endif; ?>
<?php if( get_field('xxp_convo_apply_end') && !get_field('xxp_convo_apply_begin') ){ echo 'fins'; } ?>
<?php if( get_field('xxp_convo_apply_end') ): ?>
<span class="item-xxp_convo_apply_end">al <?php the_field('xxp_convo_apply_end'); ?> </span>
<?php endif; ?>
<?php if( get_field('xxp_convo_apply_text') ): ?>
<span class="item-xxp_convo_apply_text"><?php the_field('xxp_convo_apply_text'); ?></span>
<?php endif; ?>
</dd>
<?php endif; ?>
</li>
<?php if( ! get_field('xxp_convo_espai_associat') ): ?>
<?php // read here howto ?>
<?php // https://www.advancedcustomfields.com/resources/relationship/#display-list-of-posts-with-setuppostdata ?>
<?php if( get_field('xxp_convoer_name') ): ?>
<li class="xarxaprod-convo-field">
<dt></dt>
<dd class="xarxaprod-convoer-name"><?php the_field('xxp_convoer_name'); ?></dd>
</li>
<?php endif; ?>
<?php else: //exists get_field('xxp_convo_espai_associat')?>
<?php $espai_associat_posts = get_field('xxp_convo_espai_associat'); ?>
<?php foreach( $espai_associat_posts as $thispost ): ?>
<?php // Setup this post for WP functions (variable must be named $post).?>
<li class="xarxaprod-convo-espai-associat">
<dt></dt>
<dd><a href="<?php echo ($thispost->guid);//the_permalink(); ?>"><?php echo ($thispost->post_title); ?><?php //the_title(); ?></a></dd>
</li>
<?php endforeach; ?>
<?php // Reset the global post object so that the rest of the page works correctly.?>
<?php endif; //end get_field('xxp_convo_espai_associat') ?>
</ul>
</section>
<section class="excerpt post-excerpt">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark" class="">
<?php echo wp_trim_words(get_the_excerpt(), 16); // https://developer.wordpress.org/reference/functions/wp_trim_words/?>
</a>
</section>
<aside class="convo-sector convo-field">
<?php get_template_part( 'template-parts/section', 'list-checkbox', array('iterate_field' => 'xxp_convo_field') ); ?>
</aside>
<nav class="more-link">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark" class="button button-more">
Més info
<span class="hide"><?php the_title(); ?></span>
</a>
</nav>
</div>
<?php endwhile;//end of the loop ?>
<?php wp_reset_postdata(); ?>
<?php else : //if no post in query ?>
<p class="no-content"> No convos </p>
<?php endif; //end WP_Query ?>
</main>
<?php } //closing if is_plugin_active ?>
</section>