logo
Ask your WordPress questions! Pay money and get answers fast! (more info)

Warning: Please do not give out any FTP or ssh credentials to anyone, unless you trust them completely. Giving out login details is dangerous.

If the asker does not get an answer then they have 10 days to request a refund.

$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

This question has been answered.

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


(3) Possible Answers Submitted...

See a chronological view of answers?

Warning: Please do not give out any FTP or ssh credentials to anyone, unless you trust them completely. Giving out login details is dangerous.

  • 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



Warning: Please do not give out any FTP or ssh credentials to anyone, unless you trust them completely. Giving out login details is dangerous.

If the asker does not get an answer then they have 10 days to request a refund.