Support » Plugin: Rich Reviews » Adding shortcode attributes using PHP in template

  • Resolved TrishaM


    Sorry I just realized I posted my question in a “resolved thread”, please forgive the duplication.

    Can you please further explain how to add the shortcode to the template when additional attributes are needed to show specific reviews, e.g. based on category?

    So in your example from the other thread:
    <?php echo do_shortcode(‘[RICH_REVIEWS_SHOW]’); ?>

    I need to change the category attribute based on a custom field for the page that matches the category, like so:

    <?php echo do_shortcode(‘[RICH_REVIEWS_SHOW category=”<?php echo $category(); ?>”]’); ?>

    Obviously what I have doesn’t work…..need a little help here. 🙂

Viewing 1 replies (of 1 total)
  • OK I got this worked out and am posting my solution here in case anyone else is interested in doing this…..keep in mind YMMV! This is just one possible solution.

    One very simple solution is to add a custom field to the page on which the reviews would display, the put in that custom field the shortcode, then echo the custom field in the template. That would work if we only had a few pages on which to add the custom field, but the site I’m working on has thousands of pages.

    Thus I needed to be able to use a PHP call to display the review(s) in my template, and so the the attribute (category=”whatever”) needed to be variable so that it can be matched to the product category, which is already stored in a custom field.

    SO I added this to my template where I wanted the reviews to display:

    $mycat = get_post_meta($post->ID,'product_category',true);
    $myshortcode = 'RICH_REVIEWS_SHOW category="'.$mycat .'" num="3"';
    $myshortcode = '[' . $myshortcode . ']';
    echo do_shortcode($myshortcode);

    We don’t display the form on the product page (since we invite reviewers and keep the form on a private page), but you could use the same code to display the form and set the category for the form to match the product too.

    I also used the same code to display the SNIPPET (aggregate reviews) on each product’s parent category page.

    I hope this helps someone!

Viewing 1 replies (of 1 total)
  • The topic ‘Adding shortcode attributes using PHP in template’ is closed to new replies.