Post Avatar Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
Allow authors to select an image from a pre-defined list while in the Post Editor screen. This image will be displayed together with a post.
Post Avatar is similar in concept to Livejournal userpics wherein authors choose images uploaded by the site owner. Developed with Dominik Menke.
Features
- Easy selection of images from within the Post Editor screen.
- Scans images in sub-directories of the image option folder.
- Allows the following file types: .jpg, .jpeg, .gif and .png.
- Flexible with customizing avatar display.
- Display avatars using the default HTML/CSS tags.
- HTML/CSS tags can be edited from with the Settings screen.
- Use template tags and custom filters within themes for advanced customization.
- International language support for Belorussian, Czech, Dutch, French, German, Hindi, Irish, Italian, Polish, Romanian, Serbo-Croatian, Spanish
- Does not display missing images.
- Can be further extended to show images for pages and custom post types
Bug Submission and Forum Support
Please Vote and Review
Your votes and feedback are greatly appreciated. Thanks.
Advanced Customization
For Front End Display
By default, the plugin hooks into the following filters: the_content() and the_excerpt().
OVERRIDE HTML DISPLAY USING FILTER HOOK: gklpa_the_postavatar
The gklpa_the_postavatar
filter takes two parameters:
-
$post_avatar_text
– Original HTML display -
$post_avatar
– Post Avatar data in array format. The keys are:avatar_url: The URL to the image show_image_dim: 1 indicates to show image dimensions, 0 to hide them image_height: integer value of image height or null if image dimensions is turned off image_width: integer value of image width or null if image dimensions is turned off post_id: ID of current post post_title: Post title for the image attribute image_name: Image file name
Example: Display a default image if no avatar is selected
This example makes use of the HTML/CSS settings defined by the site admin.
add_filter( 'gklpa_the_postavatar', 'prefix_show_default_image', 10, 2 );
function prefix_show_default_image( $post_avatar_html, $post_avatar_array ){
global $post, $gklpa_plugin_settings;
// Display default image;
if( is_null( $post_avatar_array ) ){
if( !empty( $gklpa_plugin_settings['css_class'] ) {
$css = 'class="' . $gkl_plugin_settings['css_class']. '"';
}
$post_avatar_html = $gklpa_plugin_settings['html_before' ] . '<img '. $css . ' src="http://wplatest.dev/images/default-image.jpg" alt="' . esc_attr(strip_tags($post->post_title) ) . '" />'. $gklpa_plugin_settings['html_after'];
}
return $post_avatar_html;
}
OVERRIDE HTML DISPLAY WITH CUSTOM CONTENT HOOK
If you want to change the HTML completely or override the option to display avatars automatically, use the remove_filter() like so:
remove_filter(‘the_content’, ‘gkl_postavatar_filter’, 99 );
remove_filter(‘the_excerpt’, ‘gkl_postavatar_filter’, 99 );
You can then define your own the_content
filter function that makes use of the gkl_postavatar()
or gkl_get_postavatar()
functions
You will need to use the function gkl_get_postavatar()
which takes the post object and returns the array of post avatar information.
-
$post_avatar_array
– Post Avatar data in array format. The keys are:avatar_url: The URL to the image show_image_dim: 1 indicates to show image dimensions, 0 to hide them image_height: integer value of image height or null if image dimensions is turned off image_width: integer value of image width or null if image dimensions is turned off post_id: ID of current post post_title: Post title for the image attribute image_name: Image file name
Example:
add_filter( 'the_content', 'my_custom_post_avatar' );
function my_custom_post_avatar( $content ){
global $post;
$current_avatar = gkl_get_postavatar( $post );
$html_before = '<span class="alignleft">';
$html_after = '</span>';
// Display default image
if( is_null( $current_avatar ) ) {
$image_url = 'http://wplatest.dev/images/default-image.jpg';
$alt_text = esc_attr(strip_tags($post->post_title) );
} else {
$image_url = $current_avatar['avatar_url'];
$alt_text = $current_avatar['post_title'];
}
$post_avatar_html = $html_before . '<img src="'. $image_url . '" alt="' . $alt_text . '" />'. $html_after;
return $post_avatar_html;
}
OVERRIDE HTML DISPLAY WITH template tag gkl_postavatar
If you want the post avatar to appear outside of the content, e.g. with the entry’s meta information, make use of the gkl_postavatar()
template tag.
It takes four paramters:
class: CSS class to use in the `<img>` tag.
before: HTML to appear before the image.
after: HTML to appear after the image.
do_what: Use `echo` to display the post avatar, `return` to pass it to a variable. Defaults to `echo`.
Example: In a template file:
<div class="entry-meta">
<?php gkl_postavatar('', "<span class='alignleft'>", "<span>" );?>
-- more template tags here --
</div>
Or you can make your own template tag function like in the example for “Override HTML display with custom content hook”, except you call the function directly in your template instead of hooking into the_content()
.
For Administration Screens
Add Post Avatar to Pages and Custom Post Types
Use the filter hook gklpa_allowed_post_types
to add further post types that you want the Post Avatar selection to appear on.
It takes an array of post type slugs as a parameter.
add_filter( 'gklpa_allowed_post_types', 'prefix_my_custom_post_types' );
function prefix_my_custom_post_types( $current_post_types ){
$current_post_types = array( 'post', 'page', 'review', 'event' );
return $current_post_types;
}
Enable Image Selection for Folder Outside of WordPress Installation
By default, Post Avatar looks for your images folder in relation to your WordPress installation. If you want to move your folder elsewhere, use these pair of filter hooks: gklpa_image_url
and gklpa_image_dir
. They take a single parameter: Image folder url and absolute path to the image folder, respectively.
add_filter( 'gklpa_image_url', 'prefix_change_folder_url' );
function prefix_change_folder_url( $current_url ){
return esc_url( 'http://mysite.com/images/' );
}
add_filter( 'gklpa_image_dir', 'prefix_change_folder_dir' );
function prefix_change_folder_dir ){
return '/user/public_html/images/';
}
Please visit the Post Avatar Page for details on customizing the avatar display.
Translations
Post Avatar is translation-ready and supports a number of languages. If you can’t find your language here, please consider contributing a language pack.
If you’re interested, please check out the “Codestyling Localization” plugin and for validating the “Poedit Editor”.
Send in your translations to vix@garinungkadol.com
Thanks to the following for their language packs.
- Belorussian (ru_RU) Fat Cower
- Czech (cz_CZ) Lelkoun
- Dutch (nl_NL) Jay August
- French (fr_FR) Mathieu Haratyk
- German (de_DE) Dominik Menke
- Hindi (hi_IN_Hindi) Outshine Solutions
- Irish (ga_IR) Ray S.
- Italian (it_IT) Gianni Diurno
- Polish (pl_PL) Meloniq
- Romanian (ro_RO) Webhosting Geeks
- Serbo-Croatian (sr_RS) Webhosting Hub
- Spanish (es_ES) gogollack