Wordpress add_action在另一个函数里面

时间:2014-01-15 10:59:27

标签: wordpress wordpress-plugin

我想根据短代码参数在head部分添加样式标记。我为样式编写了一个函数,并希望在短代码函数中调用它add_action

但是,样式不会添加到头部。如果我在函数外部调用add_action,它会成功运行。 请告诉我如何在php函数中调用语句“add_action”,以及如何将参数发送到函数以调用add_action。

这是我的代码:

function ag_appearance( $year ){
?>
<style type="text/css">
    /*Some style here*/
</style>
<?php
}

add_action( 'wp_head', 'ag_appearance' ); /*  this is working */

function dp_agenda( $atts, $content = null ){
   extract( shortcode_atts( array(
    'year' => '',
    'day' => '',
    'summit' => '',
    'complexity' => '',
    'certification' => '',
    'event' => '',
    'make' => ''
    ), $atts ) );
    add_action( 'wp_head', 'ag_appearance' ); 
  /*  this is not working, while i want to call here by $year parameter */
}

1 个答案:

答案 0 :(得分:0)

我建议创建一个CSS文件,其中包含要添加到标题的样式(例如appearance.css)并将其放在主题文件夹中以便知道它在哪里(我通常使用{{1}对于风格)。然后使用wp_enqueue_style在调用包含函数时设置标题中的样式。有点像这样:

/css

默认情况下,WordPress中的排队样式会通过function dp_agenda( $atts, $content = null ){ extract( shortcode_atts( array( 'year' => '', 'day' => '', 'summit' => '', 'complexity' => '', 'certification' => '', 'event' => '', 'make' => '' ), $atts ) ); wp_enqueue_style('appearance',get_stylesheet_directory_uri().'/css/appearance.css'); /* this is not working, while i want to call here by $year parameter */ } 放置在头部,并且脚本会放置在wp_head()放置的任何位置,通常位于wp_footer()标记之前。

您还可以使用wp_enqueue_script来提取您的javascript文件。