StudioPress Community Forums

StudioPress Community Forums (http://www.studiopress.com/support/index.php)
-   General Discussion (http://www.studiopress.com/support/forumdisplay.php?f=7)
-   -   Random Testimonial (http://www.studiopress.com/support/showthread.php?t=118529)

golden 09-21-2012 10:17 PM

Random Testimonial
 
I'd like to expand on this by pulling one random testimonial and have it appear in specific page bodies (not widgets). I

My testimonials are individual blog posts with custom fields pulled to one review page. I was hoping this code would work:

Code:

<ul>
<?php query_posts('category_name=Testimonials&showposts=1&offset=0&orderby=rand'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; endif; ?>
</ul>


But it doesn't. I also tried replacing category name with category id=36 . No good.

Any suggestions?

NicktheGeek 09-26-2012 07:59 AM

Please post a link to one of your testimonials.

golden 09-30-2012 11:53 AM

Quote:

Originally Posted by NicktheGeek (Post 596282)
Please post a link to one of your testimonials.


http://www.pittsburghweddingphotogra...hy-is-amazing/

NicktheGeek 09-30-2012 06:17 PM

"category_name" is a mis-nomer. You actually need to use the slug, so try this.
PHP Code:

<?php query_posts('category_name=testimonials&showposts=1&offset=0&orderby=rand'); ?>


golden 10-03-2012 10:24 AM

HTML Code:

<ul>
<?php query_posts('category_name=testimonials&showposts=1&offset=0&orderby=rand'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; endif; ?>
</ul>

Doesn't work. It shows the code on the page....

@Nick, you said I need to use the slug. All of the page titles are different. I tied them together for the testimonials pge using the categor id 36.

NicktheGeek 10-03-2012 12:28 PM

where are you adding this code?

golden 10-03-2012 12:35 PM

Quote:

Originally Posted by NicktheGeek (Post 599827)
where are you adding this code?

I am adding it to the html window in the contact page body below a Gravity Form. I it to pull random testimonials anywhere I have a call to action.

NicktheGeek 10-03-2012 12:52 PM

You cannot add PHP to the page content. You might try the Genesis Simple Hooks plugin.

golden 10-03-2012 12:55 PM

Quote:

Originally Posted by NicktheGeek (Post 599846)
You cannot add PHP to the page content. You might try the Genesis Simple Hooks plugin.

Can Genesis Simple Hooks allow me to have the testimonials appear on specific pages rather than all? If so, under which Genesis Hooks heading should I add the code?

NicktheGeek 10-03-2012 02:00 PM

you can make your code conditional
http://nickc.co/conditional-content

I would recommend the genesis_post_content hook.

golden 10-03-2012 02:28 PM

I originally wanted this on specific pages, but it seems difficult. So, I am going to see what it looks like on all pages but the home page. Here is what I have based on Nick's tutorial.

I am sure I have the first opening & closing tags messed up.
HTML Code:

<ul>
<?php
if(!is_home()) { ?>
<?php }
?>

<?php query_posts if(is_contact()) { ?>('category_name=testimonials&showposts=1&offset=0&orderby=rand'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; endif; ?>
</ul>


NicktheGeek 10-03-2012 02:54 PM

yea, you need to wrap your code in the conditional
PHP Code:

<?php if(!is_home()) { ?>
<ul>
<?php query_posts if(is_contact()) { ?>('category_name=testimonials&showposts=1&offset=0&orderby=rand'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; endif; ?>
</ul>
<?php ?>


golden 10-03-2012 03:54 PM

I want it to appear at the bottom of the page body.

I added the cod to the Genesis Before Footer Hook and clicked enable php.

Parse error: syntax error, unexpected T_IF in /home/goldenim/public_html/pittsburghweddingphotographer.com/wp-content/plugins/genesis-simple-hooks/plugin.php(126) : eval()'d code on line 3

NicktheGeek 10-03-2012 04:18 PM

I missed some of your broken conditional code
PHP Code:

<?php if(!is_home()) { ?>
<ul>
<?php query_posts('category_name=testimonials&showposts=1&offset=0&orderby=rand'); ?>
<?php 
if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; endif; ?>
</ul>
<?php ?>


golden 10-03-2012 06:53 PM

This code works but is showing on the home page. Also, I wanted to pull the whole post and this only pulls the title link.

NicktheGeek 10-03-2012 08:38 PM

instead of is_home() use is_front_page()

If you will want more info use something like the_content() or other loop functions.

golden 10-03-2012 08:57 PM

genesis_after_content Hook

HTML Code:

<?php if is_front_page()) { ?>
<ul>
<?php query_posts('category_name=testimonials&showposts=1&offset=0&orderby=rand'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; endif; ?>
</ul>
<?php } ?>

Parse error: syntax error, unexpected T_STRING, expecting '(' in /home/goldenim/public_html/pittsburghweddingphotographer.com/wp-content/plugins/genesis-simple-hooks/plugin.php(126) : eval()'d code on line 1

:bang:

NicktheGeek 10-04-2012 07:58 AM

you removed the ( after if

golden 10-04-2012 09:38 AM

Quote:

Originally Posted by NicktheGeek (Post 600363)
you removed the ( after if

I searched the code on this whole thread. There is no after if. Should I add it like this?

HTML Code:

<?php endwhile; endif; afterif ?>

NicktheGeek 10-04-2012 12:24 PM

not fterif; after the "if" you removed the (. If is a function so it should have if() with the code you are testing against inside the (). You removed the ( so you have if )

golden 10-04-2012 12:28 PM

Quote:

Originally Posted by NicktheGeek (Post 600532)
not fterif; after the "if" you removed the (. If is a function so it should have if() with the code you are testing against inside the (). You removed the ( so you have if )


I'm sorry, I know basic html. Would you kindly merge this advice with the whole php code so I can see how it should look? I'm sure it feels spoon fed to you, but I am trying to learn. :)

Thank you for your continued responses Nick.

NicktheGeek 10-04-2012 01:00 PM

You are missing the (. I've added it in red so you can see what I'm trying to explain.
Code:

<?php if( is_front_page() ) { ?>
<ul>
<?php query_posts('category_name=testimonials&showposts=1&offset=0&orderby=rand'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; endif; ?>
</ul>
<?php } ?>



All times are GMT -5. The time now is 07:44 PM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.