0

投稿本文内の特定の行を、プラグインで宣言された関数出力に置き換えるワードプレス プラグインを作成したいと考えています。これがあなたにとって意味があることを願っています。私は新しいroワードプレス開発です。

プラグインコード

<?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 で同じことができますか?

4

1 に答える 1

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') 
?>
于 2013-01-18T14:18:57.043 に答える