Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I need to get video and content from recent posts in specific category called "Video" and show it on my sidebar.

The problem is when I need to have limited text content. so, when I use the_content(); I can see video within sidebar, but when I use the_excerpt(); to limit text, video is gone.

The code I have is doing what I need with posts and categories but I'm stuck here:

<?php query_posts('cat=6&showposts=2'); ?>
<?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

Tho, I have one more content limit function that I can use in my function.php but as I am new at WordPress and PHP, I don't know what to do next and could use any help that you can offer.

function content($num, $more_link_text = '(more...)') { 
    $theContent = get_the_content($more_link_text); 
    $output = preg_replace('/<img[^>]+./','', $theContent); 
    $output = strip_shortcodes($output);
    $output = strip_tags($output);
    $output = preg_replace("/\[caption.*\[\/caption\]/", '', $output);
    $limit = $num+1; 
    $content = explode(' ', $output, $limit); 
    array_pop($content); 
    $content = implode(" ",$content); 
    echo ($content) . "...";
}

with <?php content(8); ?> that I'm calling in my Loop. This do what I need with content limitation, but still doesn't show video.

share|improve this question
1  
Your function is stripping all of the tags from the content, including images and video. That is, your function appears to be working correctly, but it is not the function you need for this purpose. You will need to rewrite that function so that it preserves the videos. Please edit the question to include your precise requirements for this function. –  s_ha_dum Apr 20 '13 at 20:52
add comment

3 Answers

In youy loop just past this snippet of code.

<?php query_posts('cat=6&showposts=2'); ?>
<?php while (have_posts()) : the_post(); ?>

<?php content('10'); ?>


<?php endwhile; ?>

Replace 10 with any number you want.

Tell me if it works.

share|improve this answer
2  
What you suggest sounds very much like what the OP is already doing. Read the last sentence of the question. –  s_ha_dum Apr 20 '13 at 20:29
add comment

Adding Video from youtube.(I didn't try from other chanels)

  1. Add a new custom field and name it for ex. VIDEO

  2. Add the code to incorporate video in the value Field like this:

If your code is:

<iframe width=”300″ height=”180″ src=”http://www.youtube.com/embed/9bZkp7q19f0” frameborder=”0″ allowfullscreen></iframe>

Extract the src=”value” and paste this to your custom field value.

  1. In your loop call the custom field value like this
<?php $video_field=get_post_meta($post->ID,'VIDEO',true); ?>

<iframe width="300″ height="180" src="<?php echo $video_field;?>" frameborder="0" allowfullscreen="true"></iframe>

<?php endif;?>

Here is an working sample: http://5wpthemes.com/blog/how-to-add-video-in-sidebars-posts-pages-with-custom-fields/

Also you can use excerpt custom field to call the excerpt in your loop and limit how much you want.

share|improve this answer
    
May I ask you to fix the curly quotes? :) –  toscho Apr 21 '13 at 11:11
add comment

If you're video embeds are always the same, I like the solution proposed by 5wpthemes, but if you want to avoid having to use a custom field ( and more specifically, remembering to do it), you could also try the code below ( which also requires the code to be very similar in every post ).

<?php query_posts('cat=6&showposts=2'); ?>
<?php while (have_posts()) : the_post(); ?>
    $theContent = get_the_content();
    $parts = explode("iframe",$theContent);
    ?><iframe<? echo $parts[1]; ?>iframe><?php
<?php endwhile; ?>
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.