You just have to enable executing shortcodes in text widgets.
Google is your best friend here, but this should do the trick:
add_filter('widget_text', 'do_shortcode');
Regards,
Bartosz / dfactory
I added that code in my theme’s function.php file, but nothing changed. I explain better the situation: I created a text widget with this code inside:
[download-attachments container="div" container_id="327" title="" style="list" display_icon="1" display_empty="1" display_user="0"]
This widget should be visible on more pages on the right column, but I can see attachments only if the page has the same ID specified in code, otherwise widget shows “No attachments to download” Thanks.
Ok, it’s not possible yet.
If you’d like to check something, please go to plugin folder/includes/shortcodes.php and change the entire download_attachments_shortcode() function into this:
/**
* Handles download-attachments shortcode
*/
public function download_attachments_shortcode($args)
{
$defaults = array(
'post_id' => 0,
'container' => 'div',
'container_class' => 'download-attachments',
'container_id' => '',
'style' => isset($this->options['general']['display_style']) ? esc_attr($this->options['general']['display_style']) : 'list',
'link_before' => '',
'link_after' => '',
'display_user' => (int)$this->options['general']['frontend_columns']['author'],
'display_icon' => (int)$this->options['general']['frontend_columns']['icon'],
'display_count' => (int)$this->options['general']['frontend_columns']['downloads'],
'display_size' => (int)$this->options['general']['frontend_columns']['size'],
'display_date' => (int)$this->options['general']['frontend_columns']['date'],
'display_caption' => (int)$this->options['general']['frontend_content']['caption'],
'display_description' => (int)$this->options['general']['frontend_content']['description'],
'display_empty' => 0,
'display_option_none' => __('No attachments to download', 'download-attachments'),
'use_desc_for_title' => 0,
'exclude' => '',
'include' => '',
'title' => __('Download Attachments', 'download-attachments'),
'orderby' => 'menu_order',
'order' => 'asc',
'echo' => 1
);
//we have to force return in shortcodes
$args['echo'] = 0;
if(!isset($args['title']))
{
$args['title'] = '';
if($this->options['general']['label'] !== '')
$args['title'] = $this->options['general']['label'];
}
$args = shortcode_atts($defaults, $args);
// reassign post id
$post_id = (int)(empty($args['post_id']) ? get_the_ID() : $args['post_id']);
// unset from args
unset($args['post_id']);
return da_display_download_attachments($post_id, $args);
}
Then just pass, for example post_id=”1″ (to get attachments from post of ID 1). I’d be greatful for the feedback if that works.
You are the best! Works like a charm!
Happy to hear that 🙂
This change will be available in the next DA update, sou you won’t have to modify the code.
Regards,
Bartosz / dfactory