post_grid_layout_element_{id}

post_grid_layout_element_{id} used to render HTML output for each element on the grid item, where  {id} should replace with element id, like title, excerpt, and etc, list of elements here https://pickplugins.com/documentation/post-grid/elements/

 

Sample code for excerpt 

add_action('post_grid_layout_element_excerpt', 'post_grid_layout_element_excerpt');

function post_grid_layout_element_excerpt($args){

    $element  = isset($args['element']) ? $args['element'] : array();
    $elementIndex  = isset($args['index']) ? $args['index'] : '';

    $post_id = isset($args['post_id']) ? $args['post_id'] : '';

    if(empty($post_id)) return;

    $layout_id  = isset($args['layout_id']) ? $args['layout_id'] : '';

    $post_excerpt = get_the_excerpt($post_id);
    $post_link = get_permalink($post_id);

    $link_target = isset($element['link_target']) ? $element['link_target'] : '';

    $custom_class = isset($element['custom_class']) ? $element['custom_class'] : '';
    $char_limit = isset($element['char_limit']) ? (int) $element['char_limit'] : 0;
    $read_more_text = isset($element['read_more_text']) ? $element['read_more_text'] : __('Read more', 'post-grid');


    if($char_limit > 0){
        $post_excerpt = wp_trim_words($post_excerpt, $char_limit, '');
    }

    ?>
    <div class="element element_<?php echo esc_attr($elementIndex); ?> <?php echo esc_attr($custom_class); ?> excerpt ">
        <?php echo ($post_excerpt); ?>
        <?php
        if(!empty($read_more_text)):
            ?>
            <a target="<?php echo esc_attr($link_target); ?>" href="<?php echo esc_url_raw($post_link); ?>"><?php echo esc_html($read_more_text); ?></a>
        <?php
        endif;
        ?>
    </div>
    <?php
}

Screenshot

View post on imgur.com

Override existing output

remove_action('post_grid_layout_element_title', 'post_grid_layout_element_title');

add_action('post_grid_layout_element_title', 'post_grid_layout_element_title_custom');

function post_grid_layout_element_title_custom($args){
    $element  = isset($args['element']) ? $args['element'] : array();
    $elementIndex  = isset($args['index']) ? $args['index'] : '';

    $post_id = isset($args['post_id']) ? $args['post_id'] : '';

    if(empty($post_id)) return;

    $layout_id  = isset($args['layout_id']) ? $args['layout_id'] : '';

    $post_link = get_permalink($post_id);

    $post = get_post( $post_id );
    $title = isset( $post->post_title ) ? $post->post_title : '';


    //$title = get_the_title($post_id);

    $link_target = isset($element['link_target']) ? $element['link_target'] : '';
    $custom_class = isset($element['custom_class']) ? $element['custom_class'] : '';
    $char_limit = isset($element['char_limit']) ? (int) $element['char_limit'] : 0;
    $char_end = isset($element['char_end']) ? $element['char_end'] : '...';
    $link_to = isset($element['link_to']) ? $element['link_to'] : 'post_link';


    if($char_limit > 0){
        $title = wp_trim_words($title, $char_limit, $char_end);
    }

    ?>
    <h2 class="element element_<?php echo esc_attr($elementIndex); ?> <?php echo esc_attr($custom_class); ?> title ">
        <?php if($link_to == 'post_link'): ?>
            <a target="<?php echo esc_attr($link_target); ?>" href="<?php echo esc_url_raw($post_link); ?>"><?php echo esc_html($title); ?></a>
        <?php else: ?>
            <?php echo esc_html($title); ?>
        <?php endif; ?>


    </h2>
    <?php  
}

Read more text

add_action('post_grid_layout_element_read_more', 'post_grid_layout_element_read_more_11022021'); function post_grid_layout_element_read_more_11022021($args){

 $element = isset($args['element']) ? $args['element'] : array(); 
 $elementIndex = isset($args['index']) ? $args['index'] : ''; 
 $post_id = isset($args['post_id']) ? $args['post_id'] : ''; 
 if(empty($post_id)) return;

 $read_more_text = isset($element['read_more_text']) ? $element['read_more_text'] : ''; 

echo $read_more_text;

}