logo

$40
Combining Two Functions - WP-PostRatings Plugin

Hello WP Geniuses!
I am working on a site that uses the WP-PostRatings Plugin. I need to merge 2 different functions here to display some images attached to the post.

The code below will output the post content when %POST_THUMB% is placed in the template area in the admin.



if (strpos($template, '%POST_THUMB%') !== false) {
if ($post->ID != $post_id) {
$post = &get_post($post_id);
}
$value = str_replace("%POST_THUMB%", get_the_content(), $value);
}



However, I don't need the content of the post. I have a custom "query" that is bringing in my attachment images or video code. That code is as follows:



<?php if ( get_post_meta($post->ID, 'video', true) ) { ?>
<?php echo get_post_meta($post->ID, "video", $single = true); ?>
<?php } else { ?>

<?php
$attargs = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'post_parent' => $post->ID);

$attachments = get_children($attargs);
if ($attachments) {
foreach ($attachments as $post) {
?>
<img style="max-width:630px; width:100%;" src="<?php echo wp_get_attachment_url($post->ID); ?>" alt="<?php the_excerpt(); ?>" title="<?php the_title(); ?>" class="staff-img" />
<?php
break; //only display first image
}
}
?>

<?php } ?>



So essentially, what I need is to to put put the second block of code into the first block of code so that I can call %POST_THUMB% and get those attached images (or video). I'm guessing the "get_the_content()" function is where it needs to happen, I just don't have the smarts to do it!

Sure hope someone can help me out!

Thanks guys!
Mike

Mike McAlister | 05/11/10 at 4:03am | Edit


(3) Possible Answers Submitted...

  • avatar
    Last edited:
    05/11/10
    4:14am
    Oleg Butuzov says:

    replace this

    $value = str_replace("%POST_THUMB%", get_the_content(), $value);

    by this
    $value = str_replace("%POST_THUMB%", get_post_meta($post->ID, "video", true), $value);


    this will effect it only if you have the post_meta field video.

    Previous versions of this answer: 05/11/10 at 4:10am | 05/11/10 at 4:13am | 05/11/10 at 4:14am

  • avatar
    Last edited:
    05/11/10
    4:14am
    Utkarsh Kukreti says:

    if (strpos($template, '%POST_THUMB%') !== false) {
    if ($post->ID != $post_id) {
    $post = &get_post($post_id);
    }
    $value = str_replace("%POST_THUMB%", custom_post_content(), $value);
    }





    <?php
    function custom_post_content()
    {
    global $post;
    $out = '';
    if ( get_post_meta($post->ID, 'video', true) ) { ?>
    <?php $out .= get_post_meta($post->ID, "video", $single = true); ?>
    <?php } else { ?>

    <?php
    $attargs = array(
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'post_parent' => $post->ID);

    $attachments = get_children($attargs);
    if ($attachments) {
    foreach ($attachments as $post) {
    $out .= '<img style="max-width:630px; width:100%;" src="' . wp_get_attachment_url($post->ID); . ' alt="' . get_the_excerpt() . ' title="' . get_the_title() . 'class="staff-img" />';
    <?php
    break; //only display first image
    }
    }
    ?>

    <?php }
    return $out;
    }?>

    Previous versions of this answer: 05/11/10 at 4:14am

  • avatar
    Last edited:
    05/11/10
    4:32am
    Andrzej Zglobica says:

    Try this

    <?php

    if (strpos($template, '%POST_THUMB%') !== false) {
    if ($post->ID != $post_id) {
    $post = &get_post($post_id);
    }

    ob_start();
    ?>
    <?php if ( get_post_meta($post->ID, 'video', true) ) { ?>
    <?php echo get_post_meta($post->ID, "video", $single = true); ?>
    <?php } else { ?>

    <?php
    $attargs = array(
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'post_parent' => $post->ID);

    $attachments = get_children($attargs);
    if ($attachments) {
    foreach ($attachments as $post) {
    ?>
    <img style="max-width:630px; width:100%;" src="<?php echo wp_get_attachment_url($post->ID); ?>" alt="<?php the_excerpt(); ?>" title="<?php the_title(); ?>" class="staff-img" />
    <?php
    break; //only display first image
    }
    }
    ?>

    <?php } ?>
    <?php

    $output = ob_get_contents();
    ob_end_clean();

    $value = str_replace("%POST_THUMB%", $output, $value);
    }

    ?>

    • 05/11/10 4:30am

      Mike McAlister says:

      Andrzej,
      You've done it! That worked perfectly, first time around. You are the winner!

      Thanks to the others who also posted, all very close! I can't believe how fast the responses were, I'll be back here often with my Wordpress issues, you can guarantee that.

      Mike

    • 05/11/10 4:32am

      Andrzej Zglobica says:

      Glad it helped you, cheers!

This question has expired.





Current status of this question: Completed