Hooks portfolio block Kadence

/**
 * Server rendering for Post Block Inner Loop
 *
 * @param array $attributes the block attributes.
 */
function kadence_blocks_pro_render_portfolio_block_loop( $attributes ) {
	$image_align = ( isset( $attributes['alignImage'] ) && isset( $attributes['displayImage'] ) && true === $attributes['displayImage'] && has_post_thumbnail() ? $attributes['alignImage'] : 'none' );
	echo '<div class="kb-blocks-portfolio-grid-item">';
		do_action( 'kadence_blocks_portfolio_loop_start', $attributes );
		echo '<div class="kb-blocks-portfolio-grid-item-inner-wrap kb-feat-image-align-' . esc_attr( $image_align ) . '">';
			/**
			 * Kadence Blocks Portfolio Loop Start
			 *
			 * @hooked kb_blocks_pro_get_portfolio_image - 20
			 */
			do_action( 'kadence_blocks_portfolio_loop_image', $attributes );
			echo '<div class="kb-portfolio-grid-item-inner">';
				/**
				 * Kadence Blocks Portfolio before Hover content.
				 *
				 * @hooked kb_blocks_pro_portfolio_hover_link - 10
				 * @hooked kb_blocks_pro_portfolio_hover_divs - 20
				 */
				do_action( 'kadence_blocks_portfolio_loop_before_content', $attributes );
				echo '<div class="kb-portfolio-content-item-inner">';
					/**
					 * Kadence Blocks Portfolio Hover content.
					 *
					 * @hooked kb_blocks_pro_get_portfolio_lightbox - 20
					 * @hooked kb_blocks_pro_get_portfolio_title - 20
					 * @hooked kb_blocks_pro_get_portfolio_taxonomies - 30
					 * @hooked kb_blocks_pro_get_portfolio_excerpt - 40
					 */
					do_action( 'kadence_blocks_portfolio_loop_content_inner', $attributes );
				echo '</div>';
			echo '</div>';
		echo '</div>';
	do_action( 'kadence_blocks_portfolio_loop_end', $attributes );
	echo '</div>';
}

Ruta: /wp-content/plugins/kadence-blocks-pro/dist/dynamicblocks/portfolio-grid-carousel.php

Afegim a la url del CTP la taxonomia

Codi per afegir a la url d’un Cutsom Post Type, una taxonomia.

Ex:
Passem de: Domini/directorio/slug-post/
A: Domini/directorio/Taxonomia/slug-post/

A tindre en compte: quan declarem el CTP, l’opció de slug ha de tindre un, en el cas de l’exemple una forma com: directorio/%tax%

El codi el que fa és substituir el %tax% per la categoria i després fem la configuració del rewrite perquè aquests enllaços no siguin 404.

/**
 * 	Afegim a la url de wordpress la taxonomia
 * 	Fem servir el "post_type_link" per trucar el link
 * 	Fem servir el "generate_rewrite_rules" perque no surti 404 al visitar el link trucat.
 * 	Hem de referscar els enllaços permanets
 * 
 * 
 */
add_filter('post_type_link', 'my_custom_permalink', 10, 3);
function my_custom_permalink($permalink, $post_id, $leavename)
{
	if ((strpos($permalink, '%tax%') === FALSE)) // %tax% -> string que posem al slug del CTP. Ex: directorio/%tax%
		return $permalink;
	$post = get_post($post_id);
	if (!$post) return $permalink;
	$y_terms = wp_get_object_terms($post->ID, 'categorias_directorio'); // canviar per el nom de la categoria
	if (!is_wp_error($y_terms) && !empty($y_terms) && is_object($y_terms[0])) $y_taxonomy_slug = $y_terms[0]->slug;
	return str_replace('%tax%', $y_taxonomy_slug, $permalink); // %tax%
}
function directorio_cpt_generating_rule($wp_rewrite)
{
	$rules = array();
	$terms = get_terms(array(
		'taxonomy' => 'categorias_directorio', // canviar per el nom de la categoria
		'hide_empty' => false,
	));
	$post_type = 'directorio'; // canviar per el nom del CTP
	foreach ($terms as $term) {
		// canviar per el slug del CTP. Primera part nom normal. Taxonomia. Nom del CTP.
		$rules['directorio/' . $term->slug . '/([^/]*)$'] = 'index.php?post_type=' . $post_type . '&directorio=$matches[1]&name=$matches[1]';
	}
	// merge with global rules
	$wp_rewrite->rules = $rules + $wp_rewrite->rules;
}
add_filter('generate_rewrite_rules', 'directorio_cpt_generating_rule');

Crear usuari admin amb PHP

<?php
function wpb_admin_account()
{
    $user = 'Username';
    $pass = 'Password';
    $email = 'email@domain.com';
    if (!username_exists($user)  && !email_exists($email)) {
        $user_id = wp_create_user($user, $pass, $email);
        $user = new WP_User($user_id);
        $user->set_role('administrator');
    }
}
add_action('init', 'wpb_admin_account');
 ?>

Llista de Hooks per la bloc de ‘Post Grid’ de Kadence Theme Pro

add_action( 'kadence_blocks_post_no_posts', array( $this, 'get_no_posts' ), 15 );
add_action( 'kadence_blocks_post_loop_header', array( $this, 'get_above_categories' ), 10 );
add_action( 'kadence_blocks_post_loop_start', array( $this, 'get_post_image' ), 20 );
add_action( 'kadence_blocks_post_loop_header', array( $this, 'get_post_title' ), 20 );
add_action( 'kadence_blocks_post_loop_header', array( $this, 'get_meta_area' ), 30 );
add_action( 'kadence_blocks_post_loop_header_meta', array( $this, 'get_meta_date' ), 10 );
add_action( 'kadence_blocks_post_loop_header_meta', array( $this, 'get_meta_modified_date' ), 12 );
add_action( 'kadence_blocks_post_loop_header_meta', array( $this, 'get_meta_author' ), 15 );
add_action( 'kadence_blocks_post_loop_header_meta', array( $this, 'get_meta_category' ), 20 );
add_action( 'kadence_blocks_post_loop_header_meta', array( $this, 'get_meta_comment' ), 25 );
add_action( 'kadence_blocks_post_loop_content', array( $this, 'get_post_excerpt' ), 20 );
add_action( 'kadence_blocks_post_loop_content', array( $this, 'get_post_read_more' ), 30 );
add_action( 'kadence_blocks_post_loop_footer_start', array( $this, 'get_post_footer_date' ), 10 );
add_action( 'kadence_blocks_post_loop_footer_start', array( $this, 'get_post_footer_categories' ), 15 );
add_action( 'kadence_blocks_post_loop_footer_start', array( $this, 'get_post_footer_tags' ), 20 );
add_action( 'kadence_blocks_post_loop_footer_end', array( $this, 'get_post_footer_author' ), 10 );
add_action( 'kadence_blocks_post_loop_footer_end', array( $this, 'get_post_footer_comments' ), 15 );

Ruta: /wp-content/plugins/kadence-blocks-pro/dist/dynamicblocks/class-kadence-blocks-pro-post-grid.php

Ex:

// add content on post grid block
add_action('kadence_blocks_post_loop_header', 'add_maquinaria_meta', 30);
function add_maquinaria_meta()
{
	// si es CPT maquinaria
	if (get_post_type( ) === 'maquina') {
		$capacidad_de_carga = get_field('capacidad_de_carga');
		if ($capacidad_de_carga) {
			echo '<div class="capacidad-de-carga">' . $capacidad_de_carga . '</div>';
		}
	}
}

WPML falla la redirecció al Idoma

Cap problema podem fer el següent:

  • Creem una pàgina root amb el WPML.
  • Agafem la seva ID.
  • Plantem el següent codi al functions.php del tema:
function redirect_root() {
    if( is_page(843) ) {
        wp_redirect( 'https://defsalabs.com/es/' );
        exit;
    }
}
add_action( 'template_redirect', 'redirect_root' );