我正在寻找一种在使用自定义标题时获取background\\u图像ID的方法?
我厌倦了使用url_to_postid
像这样:
$url = get_header_image()
$postid = url_to_postid( $url );
$url=get\\u theme\\u mod(\'header-image\')$postid=url\\u to\\u postid($url);
我得到了两者的空值,我意识到这是因为两者get_header_image()
和get_theme_mod(\'header-image\')
以示例的形式返回url。com/wp内容/上载。。。但是什么url_to_postid
需求就是一个例子。com/?附件\\u id=#。
我还想过get_theme_mods();
但它只返回背景图像的长url。不是较短的url或ID。它确实为标题图像提供了ID,grrr。
我错过了什么?
作为记录,我这样做是为了能用wp_get_attachment_image_src()
在动态样式表中,并使用$size参数,以及一些自定义大小,以根据屏幕大小返回不同的大小。这样我就可以制作全屏幕背景,而不必为手机屏幕加载和缩小一些大图像。我的实际问题的替代解决方案非常受欢迎。
SO网友:fuxia
查询post元键_wp_attachment_is_custom_background
或_wp_attachment_is_custom_background
:
function t5_bg_img_id()
{
if ( ! $bg_img = get_background_image() )
return FALSE;
$query = array(
\'post_type\' => \'attachment\',
\'fields\' => \'ids\',
\'meta_query\' => array (
array (
\'key\' => \'_wp_attachment_is_custom_background\',
\'value\' => get_option( \'stylesheet\' ),
\'compare\' => \'==\',
),
array (
\'key\' => \'_wp_attachment_metadata\',
\'value\' => basename( $bg_img ),
\'compare\' => \'LIKE\',
)
)
);
if ( array () === $bg_post = get_posts( $query ) )
return FALSE;
return $bg_post[0];
}