使用自定义字段值的链接填充WordPress菜单(文件下载)

时间:2012-03-05 作者:Johan Dahl

我有一个额外的菜单,出现在一些单一的。php页面。在此菜单中,我想添加一个带有PDF链接的li,该PDF通过自定义字段上传到帖子中(高级自定义字段有助于此)。

我找到了一个关于如何将今天的日期添加到菜单中的片段,我想我可以以此为出发点。然而,我没有足够好的程序员知道从这里去哪里。我将非常感谢您的帮助!

这是我开始的片段:http://pastebin.com/xHHxuHdQ

我需要让它显示以下内容:

<a href="<?php the_field(\'mcf_uppsagning-pdf\'); ?>">Uppsägning</a>
虽然我不能直接替换它,但我不知道如何修改它的语法。请帮助:)

谢谢

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

试试这个:

// Filter wp_nav_menu() to add additional links and other output
add_filter(\'wp_nav_menu_items\',\'add_pdf_to_menu\', 10, 2);
function add_pdf_to_menu( $items, $args ) {
    if( $args->theme_location == \'extra-menu\')  {

        $pdf = get_post_meta( get_the_ID(), \'mcf_uppsagning-pdf\', true );
        if ( $pdf )
            $items .=  \'<li><a href="\' . wp_get_attachment_url( $pdf ) .  \'">Uppsägning</a></li>\';

    }
    return $items;
}
基本上是因为您处于单个页面的上下文中get_the_ID() 将返回您所在的帖子/页面的id。如果不起作用,请尝试使用get_queried_object_id() 代替get_the_ID().

编辑:更改了上述代码以返回附件永久链接。

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph