Bil*_*oon 6 html php wordpress
我正在制作一个插件,注册一个短代码,当这样使用时:[append_css mycss]它会查找一个自定义字段mycss,并将内容添加到head文档中.一切都很好,除了代码被添加到正文中,我不知道如何将它添加到头部.
我已经尝试添加一个动作,wp_head但我不知道如何在执行此操作时传递变量,并且它似乎无法在短代码回调中触发.
function append_css_short($params){
global $post;
if(sizeof($params)){
$key = $params[0];
} else {
$key = 'css';
}
return '<style type="text/css">'.
get_post_meta($post->ID, $key, true)
.'</style>';
}
add_shortcode('append_css','append_css_short');
Run Code Online (Sandbox Code Playgroud)
我怎么能把它写到头部而不是身体?有没有更好的方法来解决这个问题?
如果你想在文档的头部打印一些东西,你需要使用add_action钩子wp_head。
更好的方法可能是根本不使用短代码。短代码旨在添加内容或修改内容。相反,创建一个可以附加的函数来wp_head打印您的 css。您可能希望强制用户保持自定义字段名称一致。或者更好的是让你的插件在帖子中添加一个元框,他们可以在其中输入自定义 CSS。那么您将始终确定该字段的名称。
function append_css() {
global $post;
if ( ! get_post_meta( $post->ID, 'mypluginname_css', true ) ) {
return;
}
return '<style type="text/css">'. get_post_meta($post->ID, $key, true) .'</style>';
}
add_action( 'wp_head', 'append_css' );
Run Code Online (Sandbox Code Playgroud)
我唯一不确定的是$post自定义字段数据是否在循环外可用。因此,您可能需要在其中添加一些额外的查询,以在触发时提取自定义数据wp_head。