2013-01-18 92 views
0

我想創建一個wordpress插件,它將用插件中的函數輸出decalared替換帖子主體內部的特定行。希望這對你有意義。我是新開發的wordpress。來自帖子主體的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> 

主題文件:內容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

我看到這個錯誤,或者你正在嘗試做一個[簡碼](http://codex.wordpress.org/Shortcode_API)? – brasofilo

回答

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') 
?> 
+0

我可以在插件文件中做到這一點? –

+0

我編輯了我的答案,讓你有辦法做到這一點。 –

相關問題