Como montar uma página de downloads usando o WordPress

Todos sabem que um dos grandes atrativos do WordPress é a utilização de plugins. Um ótimo plugin para você que pretende disponibilizar downloads em seu site, principalmente para documentos e arquivos de pequeno porte (até 20Mb ). A dica é o plugin Downloads Manager .

O plugin te permite criar categorias de downloads, selecionar ícone de exibição, exibir estatísticas do download, e criar o template de exibição para um único download e para a tabela de downloads.

O plugin tem um código muito interessante para inserir as tabelas de download que é

<!–download-table–>

Ele chama o seu template da página de downloads. Precisei listar apenas algumas categorias em determinados posts e não consegui fazer isso de uma vez. A dica para melhorar o plugin é criar uma listagem da categoria como parte do loop.

Para fazer isso. Encontre o arquivo functions do plugin e vá até a parte que tem o seguinte comentário

###Load Download Page Template

E substitua pelo código:

### Load Download Page Template
function DownloadsManager_DownloadsPage($content) {
global $wpdb, $table_prefix, $iconsdir, $Download;
$Download=1;

if(!preg_match(“|<!–download table–>|”, $content))
return $content;
$start = strpos($content, ‘<!–download table–>’);
$before = substr($content, 0, $start);
$after = substr($content, 21+$start);
$dmTemplate = ‘wp-content/plugins/downloads-manager/page-download-template.tpl’;
$handle = @fopen($dmTemplate, ‘r’);
if(!$handle)
return __(‘Error… Unable to load page template. Search page-download-template.tpl in your plugin folder!’,’downloads-manager’);
$dmTemplateContent = fread($handle, filesize($dmTemplate));
$content = “”;
$cats = $wpdb->get_results(“SELECT id, name FROM “.$table_prefix.”dm_category”);
if(!empty($cats)) {
foreach($cats as $cat) {
$rows = $wpdb->get_results(“SELECT d.id,d.name,d.link,d.icon,d.category,d.description,d.date,d.clicks FROM “.$table_prefix.”dm_downloads d WHERE d.category='”.$cat->id.”‘”, ARRAY_A);
if(!empty($rows)) {
$content .= “<h2 id=’tabela-$Download’ style=’border-bottom: 1px dotted #CCC’>”.$cat->name.”</h2>”;
foreach($rows as $row) {
$row[‘icon’] = $iconsdir.’/’.$row[‘icon’];
$row[‘date’] = date(‘d/m/Y’, $row[‘date’]);
$row[‘size’] = FileSizeOf($row[‘link’]);
$row[‘url’] = get_bloginfo(‘siteurl’).’/?file_id=’.$row[‘id’];
$dmTemplateContent = preg_replace(‘/{(t)([^}]*)}/e’, __(‘\2′,’downloads-manager’), $dmTemplateContent);
$content .= preg_replace(‘/{([^}]*)}/e’, ‘$row[\1]’, $dmTemplateContent);
}
}$Download++;
}
}
fclose($handle);
$content = $before.$content.$after;
return $content;
}

?>

As categorias receberão as IDs tabela-1 , tabela-2, assim por diante. Use CSS para definir quais tabelas serão visíveis em quais posts. É isso aí, paz.