如何自定义阅读更多链接

时间:2012-06-21 作者:Jack

情况是,我有一些帖子显示在我的主页上,有一些阅读更多的链接(摘录),点击这些链接后,他们会进入完整的帖子页面,现在的问题是我想在其中一个阅读更多的链接上打开pdf,它现在不起作用,我所做的是我将pdf url粘贴在贴子页面上,并认为它会在单击后打开pdf,但显示了具有相同url的页面,并且没有打开pdf,我知道我做错了我应该做的事情。

简而言之,我如何打开任何文件,如。阅读更多链接上的文档、图像、pdf(摘录)

I am using latest wp3.4 tweenty-eleven theme

我完全是初学者,所以不要嘲笑我犯的任何愚蠢的错误

1 个回复
最合适的回答,由SO网友:Adam 整理而成

有很多方法可以实现这一点,有些方法比其他方法更复杂,有些方法提供的功能比其他方法更多,但这一切都取决于您的使用情况。

目前,最简单的方法是使用,

步骤1)

在编辑后屏幕中,需要创建自定义字段。如果自定义字段框在后期编辑屏幕中不可见,请单击screen options 在屏幕右上角,然后检查Custom Fields 复选框之后Custom Fields 元框将出现在屏幕上。

如有必要,请参阅下面的屏幕截图。

enter image description here

Custom Field 元框单击Enter New 对于name (元键)的value (元值)输入如下内容read_pdf.

然后在相邻的value 领域

如有必要,请参阅下面的屏幕截图。

enter image description here

步骤2)

接下来在主题文件中,控制帖子显示的文件,可能是index.php 文件或您的archive.php (或其他)您需要查找post循环,并用条件语句替换当前的读取更多链接。

实例

 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

        <?php the_title(); ?>

        <?php the_excerpt(); ?>

        <?php if ( get_post_meta($post->ID, \'read_pdf\', true) ) : ?>

          //replace read more link to value of read_pdf key if exists

          <a href="<?php echo get_post_meta($post->ID, \'pdf_key\', true) ); ?>">
          read more
          </a>

        <?php else : ?>

          //show normal read more link if no pdf attached.

          <a href="<?php the_permalink(); ?>">
          read more
          </a>

        <?php endif; ?>
    
  <?php endwhile; endif; ?>
上面的代码是模板文件外观的一个示例,但我不能确定。然而,这里的目的是说明如何使用Custom Fields 在它们的基本形式中,设置一个指向文档的链接,然后让该值替换标准的read more链接(当它通过条件链接存在时)if/else 陈述

NOTE: Once you enter the key of "read_pdf" once, you do not have to keep on re-entering it. Instead you will be able to select it from a drop down box in the Custom Field meta-box from then onward.

更新

在与上述OP进一步讨论后,用于“2011”主题的解决方案如下所示,但上述解决方案也适用于不通过函数控制其摘录输出的主题。php文件。

在您的功能中。第364行的php文件(二十一主题v1.4)将函数替换为;

function twentyeleven_custom_excerpt_more( $output ) {

    global $post;

    if ( get_post_meta($post->ID, \'read_pdf\', true) ) {

        $output .= \'<a href="\'.get_post_meta($post->ID, \'read_pdf\', true) .\'">read more</a>\';
        return $output;

        }
        else
        {
            if ( has_excerpt() && ! is_attachment() ) {
                $output .= twentyeleven_continue_reading_link();
            }
            return $output;

        }

}
add_filter( \'get_the_excerpt\', \'twentyeleven_custom_excerpt_more\' );

结束