【问题标题】:Display a list of PDF-files in the sidebar in Wordpress在 Wordpress 的边栏中显示 PDF 文件列表
【发布时间】:2013-03-05 16:26:44
【问题描述】:

我正在用静态 HTML 和 Wordpress 制作这个网站(我对主题文件夹进行了一些更改)。该网站即将完成,但我想在侧边栏中创建一个新框,上传不同的 PDF 文件(列表)非常容易。例如:

  • newsletter1.pdf
  • newsletter2.pdf
  • newsletter3.pd

我正在为我叔叔制作网站,他仍然需要电视遥控器方面的帮助,因此它必须尽可能方便用户使用。

我所追求的是一个小部件或只是某种方式,在侧边栏中显示 PDF 文件列表。如果它涉及更改主题代码,那很好。在这个小部件中插入 ned PDF 文件应该尽可能简单。

我想过各种不同的想法。我一直在寻找一个小部件,您可以在其中插入媒体文件。但是所有这些小部件在过去两年都没有更新。是因为它已成为 Wordpress 核心的一部分,而我遗漏了什么吗?

我也想过,如果有可能有一个 PHP-widget 或类似的东西,那其中包括一些东西——但这是一个糟糕的主意。

理想情况下,如果有一个小部件,您可以进入并添加 PDF 文件,就好像它是一个帖子一样,这将是很酷的。或者也许是一个小部件,它从帖子(或页面)中获取所有内容并显示整个内容(从那时起我可以向我叔叔解释,他只需要将页面或帖子放在正确的位置,然后它会将所有链接从该帖子或页面拉到侧边栏小部件)。

有什么想法吗?

【问题讨论】:

    标签: php wordpress sidebar


    【解决方案1】:

    使用下面的代码:

    <ul id="attachments">
    <?php foreach ($attachments as $attachment) { 
    
        if ($attachment ->post_mime_type != 'image/jpeg') {
        $filetipe = $attachment->post_mime_type;
        $signs = array(".", ",", "-", "application", "/");
        $filetype = str_replace($signs, "", $filetipe);
    
    ?>
    
        <li class="<?php echo $filetype; ?>"><a href="<?php echo wp_get_attachment_url($attachment->ID); ?>" target="blank"><?php  echo apply_filters( 'the_title', $attachment->post_title ); ?> </a></li>
    
    <?php } } ?>
    </ul>
    

    您可以获得帖子的所有附件(图片除外)。 现在您可以编辑您的 sidebar.php 并查询附有这些 pdf 文件的帖子。这将是您的 sidebar.php 文件的完整代码,其中 5 是您的帖子的 ID

            <?php
        query_posts( 'p=5' );
        while ( have_posts() ) : the_post(); ?>
    
    
    <?php $args = array(
        'post_type' => 'attachment',
        'numberposts' => null,
        'posts_per_page' => 666,
    
        'post_status' => null,
        'post_parent' => $post->ID
    ); 
    $attachments = get_posts($args);
    if ($attachments) {?>
    
    <ul id="attachments">
        <?php foreach ($attachments as $attachment) { 
    
            if ($attachment ->post_mime_type != 'image/jpeg') {
            $filetipe = $attachment->post_mime_type;
            $signs = array(".", ",", "-", "application", "/");
            $filetype = str_replace($signs, "", $filetipe);
    
        ?>
    
            <li class="<?php echo $filetype; ?>"><a href="<?php echo wp_get_attachment_url($attachment->ID); ?>" target="blank"><?php  echo apply_filters( 'the_title', $attachment->post_title ); ?> </a></li>
    
        <?php } } ?>
        </ul>
        <?php   } ?>    
        <?php endwhile; ?>
        <?php wp_reset_query(); ?>
    

    【讨论】:

    • 它给了我这个错误:[[[警告:在第 21 行的 /home/srvestle/public_html/svin/wp-content/themes/twentyten/sidebar.php 中为 foreach() 提供的参数无效wp_reset_query(); ?> ]]] 。这是代码中的第 21 行:[[[ foreach ($attachments as $attachment) { ]]]。我不理解代码 100%,所以我正在努力调试它。有人吗?
    • 我稍微修改了代码。 (在 wp 重置查询之前必须有一个 php 开始标签)
    【解决方案2】:

    我发现这个 Wordpress 插件可以解决问题。它从给定的帖子或页面中提取所有 PDF 文件并将其显示在小部件中。虽然它给了我一些问题,但没有什么是不能通过小小的摆弄来解决的......

    http://wordpress.org/extend/plugins/cop-pdf-attachment-menu/,它被称为:AGC:COP PDF 附件菜单

    【讨论】:

      猜你喜欢
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      相关资源
      最近更新 更多