我正在编写一个插件,添加带有标签[deposit_page]的页面;该标记应该用一些PHP代码替换。
这就是我所拥有的,但它不起作用。我有什么遗漏或做错了吗?
function deposit_page_content($content) {
$deposit_page_content = "here will go the content that should replace the tags";//end of variable deposit_page_content
$content=str_ireplace('[deposit_page]',$deposit_page_content,$content);
return $content;
}
add_filter("the_content", "deposit_page_content");
我刚注意到我给应该替换标签和功能本身的内容提供了相同的变量名称。这可能是问题吗?
答案 0 :(得分:6)
WordPress支持内置的[square_bracket_shortcodes]
。
请参阅:http://codex.wordpress.org/Shortcode_API
以下是您的简单示例:
function deposit_page_shortcode( $atts ) {
$deposit_page_content = "here will go the content that should replace the tags";
return $deposit_page_content;
}
add_shortcode( 'deposit_page', 'deposit_page_shortcode' );
您可以将其粘贴到有效主题的 functions.php
文件中。
如果你想要属性,比如[my_shortcode foo=bar]
,你可以在这个函数的顶部做:
extract(shortcode_atts(array(
'foo' => 'default foo',
'example' => 'default example',
), $atts));
// Now you can access $foo and $example