web-dev-qa-db-ja.com

実行方法 PHP プラグインのないテキストウィジェットのコード WP 4.4

Function.phpに次のコードがある前に

add_filter('widget_text','execute_php',100);
function execute_php($html){
     if(strpos($html,"<"."?php")!==false){
          ob_start();
          eval("?".">".$html);
          $html=ob_get_contents();
          ob_end_clean();
     }
     return $html;
}

それから私はWPをバージョン4.4.1に更新しました、そして今それはもう動いていません。他に解決策はありますか?

1
IVO

このようなものではなく、必要なものを正確に実行する独自のウィジェットを作成した方がよいでしょう。

ただし、ウィジェット内で任意のPHPを本当に実行したい場合は、そのタスク用に特別に設計されたプラグインを使用してください。 https://wordpress.org/plugins/php-code-widget/

私はこのプラグインを特に維持しているので、あなたの投稿にあなたが持っているもののようなことをすることに人々が頼らないようにします。 PHP Code Widgetは基本的にテキストウィジェットのコピーですが、PHP Codeも実行します。

それにもかかわらず、PHP Code Widgetsは悪い考えであり、避けるべきです。代わりにあなたの静的コードでカスタムウィジェットを作ってください。

3
Otto

私は同じ問題に直面しました、私が気づいたことは専門的にそれがウィジェットでphpを実行するためにpluginかfunctions.phpを使用することはお勧めできません、そのため今のようにfunctions.php technicが働かない理由です。

それはあなた自身のウィジェットを構築することをお勧めします、これは私がやろうとしていることです。