Hi,
I was playing with something similar for my homepage, and ended up writing my own custom plugin which offered short codes.
put something like the following into a php file, and add a folder and that file into the plugins section of your site.
Then go into the wordpress admin section and enable your plugin.
<?php
/*
* Plugin Name: My Custom ShortCodes
* Description: Create your WordPress shortcode.
* Version: 1.0
* Author: John Porra
* Author URI: https://www.pum.com.au
*/
// Example 1 : WP Shortcode to display form on any page or post.
function pp_product_slider( $atts = [] ){
// normalize attribute keys, lowercase
// this next part allows you to pass arguments to the short code. i.e.
[product-slider product="pizza"]
$atts = array_change_key_case((array)$atts, CASE_LOWER);
$product_name = $atts['product'];
global $wpdb;
$postids = $wpdb->get_col($wpdb->prepare("
SELECT ID
FROM $wpdb->posts
WHERE $wpdb->posts.post_title like '" . $product_name . " %'
ORDER BY $wpdb->posts.post_title", $product_name));
if ($postids) {
$args = [
'post_type' => 'post',
'posts_per_page' => -1,
'orderby' => 'post_title',
'order' => 'asc',
'post__in' => $postids
];
$the_query = new WP_Query($args);
// The Loop
// we put the output into a string, rather than an echo so that it can go where we want it, not where it appears when it executes.
if ( $the_query->have_posts() ) {
$o= '';
if ( $the_query->have_posts() ) {
//$the_query->the_post();
$id = $the_query->posts[0]->ID;
// Here's where you'd build your custom HTML
$o = $o . '<div class="container primacy-slider">';
$o = $o . '<div class="row">';
$o = $o . '<div class="col-md-2"><a href="' . get_permalink($id) . '">' . get_the_post_thumbnail($id, 'fashify-thumb-default') . '</a></div>';
$o = $o . '<div class="col-md-7">';
$o = $o . '<a href="' . get_permalink($id) . '"><h4>' . get_the_title($id) . '</h4></a>';
$o = $o . '<p>' . get_the_excerpt($id) . '</p>';
$o = $o . '</div>';
$o = $o . '<div class="col-md-3">';
$o = $o . '</div>';
$o = $o . '</div>';
$o = $o . '</div>';
}
/* Restore original Post Data */
wp_reset_postdata();
} else {
// no posts found
$o = 'Nothing here.';
}
}
return $o;
}
// change 'product-slider' to the name you want YOUR short code to have...
add_shortcode('product-slider', 'pp_product_slider');
?>
Then to use it, set up the slider to enable short codes, and add your short code in there.
i.e. for the one above use
[product-slider product="pizza"]
and then your slide will be populated with the “pizza product”
Hope this helps.