我正在制作我的公文包,我需要为我的“公文包”类别中的每个帖子设置自定义背景颜色和图像。我使用自定义数据存储颜色和图像url,并尝试在页面上打印新的css。
我不能使用真正的内联css(比如style=”),因为我制作的JS脚本已经使用了它,并且会产生冲突。
所以我尝试使用wp\\u add\\u inline\\u样式:
<?php // File "content-thumbnail.php" used for each post. So, we\'re in the Loop here. ?>
<div class="post-circle">
<?php lethal_post_circle_background(get_the_ID()); ?>
<div class="post-circle-summary">
<p class="post-title"><?php the_title(); ?></p>
<p class="post-categories"><?php lethal_post_categories_portfolio(); ?></p>
</div>
<div class="post-circle-content">
</div>
</div>
然后是添加样式的脚本:
<?php
function lethal_post_circle_background($id){
$custombgcolor = get_post_meta( $id, \'bgcolor\', true );
$custombgimage = get_post_meta( $id, \'bgimage\', true );
if($custombgcolor | $custombgimage){
$css = \'.post-\'.$id.\' .post-circle{
background:\';
if($custombgcolor) $css .= $custombgcolor . \' \';
if($custombgimage) $css .= \'url("\' . $custombgimage . \'")\';
$css.= \';}\';
wp_add_inline_style(\'lethal-style\', $css);
}
}
问题是生成的html文件中没有泛型样式,但wp\\u add\\u inline\\u style()函数返回true(因此我认为一切正常)。我没有任何错误或通知消息。
你知道问题出在哪里吗?
谢谢
SO网友:denis.stoyanov
你需要上钩wp_add_inline_style
到wp_enqueue_scripts
. 检查codex example. 类似(未测试):
function lethal_post_circle_background(){
global $post;
$id = $post->ID;
$custombgcolor = get_post_meta( $id, \'bgcolor\', true );
$custombgimage = get_post_meta( $id, \'bgimage\', true );
if($custombgcolor | $custombgimage){
$css = \'.post-\'.$id.\' .post-circle{
background:\';
if($custombgcolor) $css .= $custombgcolor . \' \';
if($custombgimage) $css .= \'url("\' . $custombgimage . \'")\';
$css.= \';}\';
wp_add_inline_style(\'lethal-style\', $css);
}
}
add_action( \'wp_enqueue_scripts\', \'lethal_post_circle_background\' );