我正在尝试使用wp_add_inline_style获取样式的metabox的meta值。但是我没有找到任何解决办法。有什么想法或方法可以使它起作用。有什么方法可以在回调函数中获取元值?
<?php
function my_styles_method($dipto_section) {
wp_enqueue_style(
'custom-style',
get_template_directory_uri() . '/assets/css/main.css'
);
global $dipto_section;
$dipto_section_meta = get_post_meta($dipto_section['section'],'dipto-section-services01', true);
$custom_css = '';
foreach ($dipto_section_meta['services-items'] as $link){
$custom_css .='
.mycolor{
background:'.esc_attr($link['service-single-color']).';
}';
}
wp_add_inline_style( 'custom-style', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'my_styles_method' );
?>
答案 0 :(得分:0)
get_post_meta
方法都接受 ID 作为第一个参数,并希望将其作为页面ID 或帖子ID 。
在您的代码$dipto_section['section']
中似乎不是 ID ,这可能是无法获取帖子元值的原因。
添加内联样式的代码非常正确,只是提到的问题需要更正。
为您提供帮助的示例代码:
function my_styles_method($dipto_section)
{
wp_enqueue_style('custom-style',get_template_directory_uri() . '/assets/css/main.css');
$page_bg=get_post_meta(get_the_ID(),'<meta-key>',true);
$page_bg_css.='#page { background:'.$page_bg.' !important; }';
wp_add_inline_style( 'custom-style', $page_bg_css );
}
add_action( 'wp_enqueue_scripts', 'my_styles_method' );