我想创建一个wordpress插件,它将使用插件中的decalared函数输出替换post体内的特定行。希望这对你有意义。我是新的word wordpress开发。
插件代码
<?php
function money_conversion_tool(){
echo "<form action='' method='post'><input type='text' name='id'><input type='submit'> </form>";
}
?>
发布HTML
<h1>Some text some text some text some text</h1>
[MONEY_CONVERSION_TOOL]
<h2>SOme text some text some text </h2>
主题文件:content-page.php
<?php
if(strpos[get_the_content(),"[MONEY_CONVERSION_TOOL]"){
$contents_part = explode('[MONEY_CONVERSION_TOOL]',get_the_content());
if(isset($contents_part[0])){ echo $contents_part[0]; }
money_conversion_tool();
if(isset($contents_part[1])){ echo $contents_part[1]; };
} else { the_content(); } } else { the_content(); }
}
?>
我不认为,我正在使用content-page.php做的是一个完美的方式。在插件代码中应该有更好的方法。如果您想要相同的功能查找,请告诉我您将要做什么。
我刚从wordpress codex找到有关过滤器的内容。
示例:<?php add_filter('the_title', function($title) { return '<b>'. $title. '</b>';}) ?>
我可以使用插件中的the_content做同样的事情吗?
答案 0 :(得分:0)
if (strpos(get_the_content(),"[MONEY_CONVERSION_TOOL]")){
echo str_replace('[MONEY_CONVERSION_TOOL]', money_conversion_tool(), get_the_content());
else
the_content();
或更短:
echo (strpos(get_the_content(),"[MONEY_CONVERSION_TOOL]")) ? str_replace('[MONEY_CONVERSION_TOOL]', money_conversion_tool(), get_the_content()) : get_the_content();
在你的功能中,不要回声,只需返回。
<?php
function mct_modifyContent($content) {
if (strpos($content,"[MONEY_CONVERSION_TOOL]"))
$content = str_replace('[MONEY_CONVERSION_TOOL]', money_conversion_tool(), $content);
return $content;
};
add_filter('the_content', 'mct_modifyContent')
?>