Title: Avoiding nested php code
Last modified: August 18, 2016

---

# Avoiding nested php code

 *  Resolved [Kathy_P](https://wordpress.org/support/users/kathy_p/)
 * (@kathy_p)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/)
 * I am using the Customizable Post Listings plugin by Scott Reilly and running 
   WordPress 1.5.2. The plugin works fine, but I am trying to write a tiny bit of
   code so that it will show up in my sidebar _except_ on the main page. At the 
   moment, my code looks like this:
    `<?php if (!is_home()) { ?> <h2>Recent Posts
   </h2> <ul> <?php c2c_get_recent_posts(5, "<li>%post_URL%<br />%post_excerpt_short%
   </li>"); ?> </ul> <?php } ?>
 * After it didn’t work, I realized it was because I had php code nested inside 
   other php code. The only reason this occurred to me is because someone on this
   forum corrected the same type of error for me on another occasion.
 * If someone proficient in php and WordPress could suggest a way around this problem
   I’d be most grateful.

Viewing 9 replies - 1 through 9 (of 9 total)

 *  [jkoontz](https://wordpress.org/support/users/jkoontz/)
 * (@jkoontz)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309251)
 * Don’t close the php and just echo the HTML you’re outputing.
 *  Thread Starter [Kathy_P](https://wordpress.org/support/users/kathy_p/)
 * (@kathy_p)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309416)
 * I know so little php that I had to look up the syntax for echo before I could
   try it out. Is this what you meant:
 * `<?php if (!is_home()) {
    echo <h2>Recent Posts</h2> echo <ul> c2c_get_recent_posts(
   5, " <li>%post_URL%%post_excerpt_short%</li> "); echo </ul> } ?>'
 * If someone could check my syntax to let me know if I’m using echo correctly, 
   and in general, if it’s coded right, I’d feel better about sticking it in my 
   sidebar. Thanks.
 * **Update:** I am having trouble getting the code to show up properly because 
   even though I encased the whole thing in backticks it interpreted the ul. And
   now there are breaks in there that I didn’t put in. If you can’t figure out what
   I meant, I will try again later. have to go to work now.
 *  [TechGnome](https://wordpress.org/support/users/techgnome/)
 * (@techgnome)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309424)
 * Hold the phone…. there’s nothing wrong with the original code…. First off… it
   really isn’t nested PHP code… it goes in & out of PHP mode… and does it like 
   it should. I don’t see a reason why it wouldn’t work. It’s the same kind of thing
   I do on my site.
 * Which brings me to “how” do you know it’s not working?
 * -tg
 *  [gregh](https://wordpress.org/support/users/gregh/)
 * (@gregh)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309433)
 * [http://www.php.net/manual/en/control-structures.alternative-syntax.php](http://www.php.net/manual/en/control-structures.alternative-syntax.php)
 *  Thread Starter [Kathy_P](https://wordpress.org/support/users/kathy_p/)
 * (@kathy_p)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309595)
 * To answer TechGnome:
    I first used this “trick” on my custom 404 page, where 
   I wrapped it around my Google ad script, so it would run on every page except
   the 404, like this: `<?php if (!is_404()) { ?> <ul>Google script</ul> <?php }?
   >
 * That worked. When I tried it on the customizable post listings plugin code (as
   above in first post), it didn’t work. In other words, despite the code it showed
   the Recently Posted section of my sidebar on my home (index) page.
 * Looking at the code, I saw that php code pulling in the recent posts was sandwiched
   between a php line that had a curly-brace and another php line that closed the
   curly brace. And I surmised, incorrectly or not, that I was nesting the php and
   it didn’t like that.
 * Now, using the link that gregh provided (and I did look in the manual, but I 
   really didn’t know where to look), let’s try again:
    `<?php if (!is_home()) :``
   echo <h2>Recent Posts</h2>;` `echo <ul>;` `c2c_get_recent_posts(5, "<li>%post_URL%
   <br />%post_excerpt_short%</li>");` `echo </ul>;` `endif;` `?>`
 * gregh, does that look right?
 *  Thread Starter [Kathy_P](https://wordpress.org/support/users/kathy_p/)
 * (@kathy_p)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309613)
 * Okay, I just went to try the above code in my sidebar. But just for kicks I tried
   it the first way, as in my original post, again. And just as TechGnome said, 
   it did work this time. I don’t know if my browser cache just didn’t refresh or
   if I thought I saved my changes but actually hadn’t, or if it was some other 
   too-late-at-night goof. But it does work now.
 * As for the second method of coding it, that didn’t work. I got this error: “Parse
   error: parse error, unexpected ‘<‘, expecting ‘,’ or ‘;’ in /home/path-to-theme/
   sidebar.php on line 21” Line 21 is the line that says `echo <h2>Recent Posts</
   h2>;`
 * Since the first method is working, I now consider this a learning exercise only.
   If anyone wants to troubleshoot the second method for the general education of
   me and anyone else who comes along, I promise to take notes and learn. But I 
   no longer need to know the second method to accomplish my goal, so I will mark
   this resolved after a day or two.
 *  [mniepert](https://wordpress.org/support/users/mniepert/)
 * (@mniepert)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309620)
 * There is no nested PHP code in the entire post. “Nested” php will always give
   you an error message.
 * Gregh just posted a link to an alternative syntax in php. That doesn’t mean the“
   standard” if-else doesn’t work.
 * (btw: Your last code snippet is completely messed up.)
 * Mathias
 *  [Austin Matzko](https://wordpress.org/support/users/filosofo/)
 * (@filosofo)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309622)
 * you need to include echo statements in quotation marks, like so:
    `echo '<h2>
   Recent Posts</h2>';`
 *  Thread Starter [Kathy_P](https://wordpress.org/support/users/kathy_p/)
 * (@kathy_p)
 * [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309644)
 * Thank you filosofo for pointing out the echo problem. Mathias, the c2c line broke
   in two and I don’t know why. If there are other problems besides the echo syntax
   let it be a warning for those who might read this later. I wouldn’t know how 
   to fix it if I’m not told. I never claimed to even be a newb when it comes to
   php. What little I know I’ve gleaned from the Codex, from poring over templates
   coded by my betters and trying to intelligently use pieces from them, and, just
   recently, from the php online manual.
 * I think it’s great that so many people are willing to help explain things to 
   those of us who are learning by trial and error. Thanks to everyone who responded
   to this thread.

Viewing 9 replies - 1 through 9 (of 9 total)

The topic ‘Avoiding nested php code’ is closed to new replies.

## Tags

 * [nested](https://wordpress.org/support/topic-tag/nested/)
 * [php](https://wordpress.org/support/topic-tag/php/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 9 replies
 * 6 participants
 * Last reply from: [Kathy_P](https://wordpress.org/support/users/kathy_p/)
 * Last activity: [20 years, 5 months ago](https://wordpress.org/support/topic/avoiding-nested-php-code/#post-309644)
 * Status: resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
