用php动态创建自定义摘录链接

时间:2013-02-23 作者:DextrousDave

再见

我在wordpress主题中使用摘录。现在在wordpress的文档中,他们说wordpress不会自动为摘录添加链接,您必须像这样手动添加它们:

原始摘录文件

 <div class="content">
 <?php the_excerpt(); ?>
 </div>
添加链接

<div class="content">
<?php the_excerpt(); ?>
<a href="<?php echo get_permalink(); ?>"> Read More...</a>
</div>
现在我想做的是将每个摘录链接到不同的wordpresspage, 而不是它自己的摘录。为此,我必须创建一个自定义php函数,为每个摘录创建一个唯一的链接,每个链接指向不同的页面。我该怎么做?

请查看我的网站摘录所在的位置-它就在名为“牧师角”、“母亲之心”、“布道”等主滑块的正下方。。。

非常感谢。

2 个回复
SO网友:Matt van Andel

对于类似的情况,您需要使用自定义post元数据(也称为“自定义字段”)。

有两个步骤:

为帖子定义一个新的自定义字段(这将是您输入URL的地方)

  • 在模板中输出该自定义字段
  • STEP 1首先,您需要定义一个新的自定义字段来存储链接。开始时,请编辑您要使用的任何帖子。在编辑屏幕上,找到“自定义字段”框。如果不可见,请打开“屏幕选项”选项卡(窗口右上角),并确保选中“自定义字段”选项。

    现在,定义一个新字段。单击“输入新”并在左侧框中键入名称。。。例如,您可以将其称为“摘录URL”。在下一个字段中,键入要链接到的URL。

    旁注:从现在起,您可以随时从“自定义字段”下拉列表中选择“摘录URL”,将其用于帖子。无需每次都键入。

    STEP 2现在,您只需从模板文件中输出post meta。您想使用WordPress的内置get_post_meta() 作用像这样在循环中使用它。。。

    <?php 
       $url = get_post_meta(get_the_ID(),\'Excerpt URL\',true); 
       if ( ! empty($url) ) {
          echo "<a href=\'{$url}\'>Read more...</a>";
       }
    ?>
    

    SO网友:Pieter Goosen

    The excerpt 单击时自动重定向到单个帖子页面。我想你遇到的麻烦是[...] 不可单击,您希望使其可单击。为此,您需要更换[...] 带有自定义Read More... 链接

    您需要这样做:

    function new_excerpt_more( $more ) {
        return \' <a class="read-more" href="\'. get_permalink( get_the_ID() ) . \'">\' . __(\'Read More\', \'your-text-domain\') . \'</a>\';
    }
    add_filter( \'excerpt_more\', \'new_excerpt_more\' );
    
    如果您需要不剥离html标记的自定义摘录,请查看我对上一个问题的回答here

    结束