每个wordpress帖子/页面挂钩一次?

时间:2015-03-04 08:56:50

标签: wordpress wordpress-plugin

在我写的插件中,我想将页面/帖子特定的css文件(在html head中)排入网页上的每个页面/帖子。

例如:如果页面加载了44和56,我需要:

<link rel='stylesheet' id='post-44-css'  href='http://test/wp-content/custom/post-44.css?ver=4.0.1' type='text/css' media='all' />
<link rel='stylesheet' id='post-56-css'  href='http://test/wp-content/custom/post-56.css?ver=4.0.1' type='text/css' media='all' />

我尝试使用the_post挂钩,但它会多次调用,而某些(&#34;迟到&#34;)调用会导致css文件添加到body的底部。< / p>

function_enqueuing_css($post) {
    ...
    wp_enqueue_style($ref, $url);
    ...
}

add_action( 'the_post', 'function_enqueuing_css' );

1 个答案:

答案 0 :(得分:0)

使用返工功能更新了答案。

我已使用wp_enqueue_scripts操作并包含单个帖子/页面的条件。查看相应的codex页面以获取更多信息。 Action referenceis_single reference

现在您的代码可能如下所示:

add_action('wp_enqueue_scripts', 'function_enqueuing_css');
function function_enqueuing_css() {
    global $wp_query;
    $id = $wp_query->post->ID;

    if(is_single()) {
        wp_enqueue_style( 'post-'.$id, 'path-to-file-'.$id.'.css', array(), '', 'all');
    }
}

同样的方法也可以用于js文件。