我正在尝试用wordpress编写一个插件,并且已经分阶段完成了这项工作,我知道如何将javascript添加到wp\\U头部,但是我不知道如何向插件选项添加多个函数调用。这是我第一次尝试编写插件,所以我知道我做错了。非常感谢您的反馈!
如果我有:
function tweet_feed_it() {
echo \'<script type="text/javascript">
$(document).ready(function() {
$(".tweet").tweet({
modpath: "path/to/plugin/twitter/",
username: "twitter_username",
join_text: "auto",
count: tweet_count,
auto_join_text_default: "We tweeted,",
auto_join_text_ed: "We",
auto_join_text_ing: "We were",
auto_join_text_reply: "We replied to",
auto_join_text_url: "We were checking out",
loading_text: "loading tweets..."
});
});
</script>\'};
// Add to head
add_action(\'wp_head\', \'tweet_feed_it\');
脚本显示在wp\\u head fine中。
但是在我的wordpress插件中,我设置了一些选项,我想在脚本标记中调用它们。
我将展示我所做的尝试,以便您了解我正在努力实现的目标,至少:
class TweetFeedIt {
function tweet_feed_it() {
function twitter_username_callback() {
function tweet_count_callback() {
printf( \'<script type="text/javascript">
$(document).ready(function() {
$(".tweet").tweet({
modpath: "http://test.phoenixlaef.com.au/wp-content/plugins/Tweet-Feed/twitter/",
username: "twitter_username",
join_text: "auto",
count: tweet_count,
auto_join_text_default: "We tweeted,",
auto_join_text_ed: "We",
auto_join_text_ing: "We were",
auto_join_text_reply: "We replied to",
auto_join_text_url: "We were checking out",
loading_text: "loading tweets..."
});
});
</script>
\'
, esc_attr( $this->options[\'twitter_username\']), esc_attr( $this->options[\'tweet_count\'])
);
}
}
}
}
// Add to head
add_action(\'wp_head\', \'tweet_feed_it\', \'twitter_username_callback\', \'tweet_count_callback\');
我是否需要注册选项设置才能像这样使用它,或者我正在尝试的只是不实用?
提前感谢您的帮助:)
最合适的回答,由SO网友:Charles Clarkson 整理而成
在PHP中嵌套函数很少有意义。这样做有一些高级理由,但我怀疑在这种情况下是否需要这些理由。
class TweetFeedIt {
function tweet_feed_it() {
function twitter_username_callback() {
function tweet_count_callback() {
[...]
}
}
}
}
The
add_action()
函数最多可以使用4个参数,但这些参数不是您上面编写的嵌套函数的名称。
add_action(\'wp_head\', \'tweet_feed_it\', \'twitter_username_callback\', \'tweet_count_callback\');
阅读文档了解
PHP, 对于
add_action()
对于
adding scripts. PHP完全按照您的要求执行,但您必须遵循该语言的约定。