Okay … I found some clues in one of the reviews. The review linked to a thread where you suggested that this would work.
<?php $attachment_id = get_field('file'); ?>
<div class="thumb">
<?php echo get_the_post_thumbnail($attachment_id, 'medium'); ?>
</div>
What is get_field() … the only documentation I can find for this function is in ACF seems like it is not a generic worpress function. Does $attachment_id contain the post ID of the thumbnail? If so my code above does the same thing.
Any help would be much appreciated. Thanks
Oops, I forgot to include my code.
function post_thumbnail( $atts, $content = null ) {
extract( shortcode_atts( array('post-id' => '0'), $atts ) );
$post_id = $atts['post-id']);
return '<div id="pdf_thumbnail">' . get_the_post_thumbnail($post_id) . '</div>';
}
It is getting the correct post code, but it doesn’t work. Also, it doesn’t work if I add ‘medium’ as a parameter.
Well, I discovered something interesting … I opened the URL associated with an uploaded PDF and it automatically opened in a viewer. So it seems like a should be able to create an a-link tag with pdf-thumbnail as the image and assign the PDF URL to the href.
Nice! … that worked reasonably well
function view_pdf ($atts, $content = null) {
extract( shortcode_atts( array ('file' => '','post' => ''), $atts ) );
$file = 'http://newtheme.effectivechinese.net/wp-content/uploads/'.$atts['file'];
$post = $atts['post'];
$image = get_the_post_thumbnail($post);
return '<a href="'.$file.'">'.$image.'</a>';
}
add_shortcode ("view-pdf", "view_pdf");
but it would be nice if I could extract the pathname from the post id.
Finally …
function view_pdf ($atts, $content = null) {
extract( shortcode_atts( array ('post' => ''), $atts ) );
$post = $atts['post'];
$image = get_the_post_thumbnail($post);
$file = get_attached_file ($post);
$url = 'http://myrocketscience.com/'.substr($file, strpos($file, "wp-content"));
return '<a href="'.$url.'">'.$image.'</a>';
}
add_shortcode ("view-pdf", "view_pdf");
And a relatively painless short code: [view-pdf post=”7601″]
Now if I could only get a smaller thumbnail.
Seems like you have figured out most the details on your own 🙂
You can simplify your code using wp_get_attachment_url instead of get_attached_file
to get the URL directly.
The size can be modified as follows:
1. Register thumbnail size (e.g. my-small-size
) using add_image_size (unless the built-in WordPress sizes suit your needs: ‘thumb’, ‘thumbnail’, ‘medium’, ‘large’, ‘post-thumbnail’)
2. Change $image = get_the_post_thumbnail($post);
into $image = get_the_post_thumbnail($post, 'my-small-size');
Thanks! … here is my final version
function view_pdf ($atts, $content = null) {
extract( shortcode_atts( array ('post' => '', 'size' => ''), $atts ) );
$post = $atts['post'];
$size = $atts['size'];
$image = get_the_post_thumbnail($post, $size);
$url = wp_get_attachment_url ($post);
return '<a href="'.$url.'">'.$image.'</a>';
}
add_shortcode ("view-pdf", "view_pdf");
Works like a champ! Feel free to add this feature to your plugin.
Thanks! I have added the functionality to version 2.1.0, see the plugin page for documentation.