WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] How Does One Echo the Content of a PHP Tag? (5 posts)

  1. Copernicus
    Member
    Posted 7 years ago #

    Hello,

    I've been stuggling with the following issue for hours & hours... I appreciate any possible help!

    I've have a conditional tag (http://codex.wordpress.org/Conditional_Tags) in my sidebar to deliver different content to different category pages.

    Within that conditional tag, I am trying to list the posts of a certain category. Following Kafkaesqui's instructions in the forum post http://wordpress.org/support/topic/69799 I've been attempting to input the equivalent of:

    <?php
    $photog_posts = get_posts('category=10&numberposts=-1'); foreach($photog_posts as $post) : setup_postdata($post);
    ?>

    within the conditional tag.
    However, to the best of my knowledge, I have to "echo" the portions of that code. And, have ended up with something like this...

    echo "$photog_posts = get_posts('category=2&numberposts=10');";
    echo "foreach($photog_posts as $post) : setup_postdata($post);";

    This, of course, DOES NOT WORK.

    So... how would one call Kafkaesqui's code above within a conditional tag (where the elements have to be "echoed")?

    Thanks for any & all help!

  2. Kafkaesqui

    Posted 7 years ago #

    The foreach() statement sets up a loop of the posts in $photog_posts, in which you can then make use of WordPress' Template Tags and whatnot one typically makes use of in The Loop.

    But see the information on get_posts for how to display post data when using it:

    http://codex.wordpress.org/Template_Tags/get_posts

  3. Copernicus
    Member
    Posted 7 years ago #

    Thank you Kafkaesqui! Thank you for the original code & for your helping me implement it properly!

    I had reviewed the get_posts page before and (believe) I have the method for displaying the post data. My question was more about the accuracy of calling the code from within a conditional tag.

    Perhaps it would have been clearer, had I included more of the code which I've tried to employ...

    (I apologize for the mess of this following code; I'm just learning & trying my darndest to make something nice & efficient)

    <?php if ( is_category() ) {
    if (is_category('3')) {
    // Special Code Here for Category 3
    ...
    ...
    } else {
    // catch-all for other categories
    echo "<li><h2>Section Title</h2>";
    echo "<ul>";
    echo "$photog_posts = get_posts('category=2&numberposts=10');";
    echo "foreach($photog_posts as $post) : setup_postdata($post);";
    echo "<li>";
    echo "<a href=\"";
    echo the_permalink();
    echo "\" rel=\"bookmark\" title=\"Permalink to";
    echo the_title();
    echo "\">";
    echo the_title();
    echo "</a></li></ul>";
    echo "</li>";
    }
    }
    ?>

    This whole use of the foreach() within the Conditional Tags is what is causing me such trouble.

    At least, that's what I think my problem is; unless I'm completely misunderstanding something.

    (thanks again for any & all help!)

  4. Copernicus
    Member
    Posted 7 years ago #

    Foolish me. I think I was making this much more difficult than it needs to be.

    Although, I'd still be interested in how one "echo's" PHP tags like this for WP's Conditional Tags system... there is a better method for implementing the changes I want.

    Using PHP include tag for the Sidebar call within a template to just serve a different sidebar entirely, rather than writing complex Conditional Tags seems like the best solution.

    (See: http://codex.wordpress.org/Customizing_Your_Sidebar -- the section entitled "Different Sidebars Anyone?")

    Although the base question of this thread has not been answered, I'm marking it as "Resolved" since a fine solution has been found.

    Thanks again to Kafkaesqui for the help!

  5. Kafkaesqui

    Posted 7 years ago #

    I'm glad you figured out a solution, but I'll answer the 'base' question, since it may be useful to others.

    Here's how your code statement should look:

    http://wordpress.pastebin.ca/245585

    Or a more readable version (to me, anyway):

    http://wordpress.pastebin.ca/245587

    In summary, your problem is you're echoing everything, including lines PHP needs to process first, like the $photog_posts var assignment. And most WordPress template tag functions (such as the_permalink() and the_title()) *already* echo their value.

Topic Closed

This topic has been closed to new replies.

About this Topic