Get attachment by slug

时间:2013-09-23 作者:Alexnl

我希望通过指定某个slug,然后在image src代码中回显该地址来获取图像。

图像的slug将是“book site header”

我查看了wordpress codex中的get\\u wp\\u附件和get\\u wp\\u attachment\\u元数据,但都没有提到slug。slug必须是唯一的,并且保存在DB中,因此必须能够根据slug找到它,然后获取相关的文件url。

image of slug area

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

附件只是一篇带有post_status = inherit 以及post_type = attachment, 因此可以使用WP_Queryget_posts.

请注意,slug(post_name) is unique per post type.

$_header = get_posts(\'post_type=attachment&name=book-site-header&posts_per_page=1&post_status=inherit\');
$header = $_header ? array_pop($_header) : null;  
$header_url = $header ? wp_get_attachment_url($header->ID) : \'\';
您还可以使用上面的代码构建自己的自定义功能

function get_attachment_url_by_slug( $slug ) {
  $args = array(
    \'post_type\' => \'attachment\',
    \'name\' => sanitize_title($slug),
    \'posts_per_page\' => 1,
    \'post_status\' => \'inherit\',
  );
  $_header = get_posts( $args );
  $header = $_header ? array_pop($_header) : null;
  return $header ? wp_get_attachment_url($header->ID) : \'\';
}
然后

$header_url = get_attachment_url_by_slug(\'book-site-header\');

结束

相关推荐

使用wp_NAV_MENU_{$MENU->slug}_Items设置项目顺序

我有一些代码,可以使用wp_nav_menu_{$menu->slug}_items. 将菜单项添加为菜单的第一项或最后一项很容易,但我想知道是否有任何方法可以为该项指定顺序,即将其作为菜单中的第三项。如果过滤器中没有内置的方法,是否有其他方法可以达到相同的结果?