web-dev-qa-db-ja.com

テーマのプラグインから関数を使用する

私はワードプレス(そしてそのことについてはphp)の初心者です。

私はいくつかの基本を理解しようとしていて、 "Jigoshop"と呼ばれるプラグインを使って小さなEコマースストアを構築しています。

私はソースファイルを読んでいて、たくさんの便利な機能を見ています。それは、製品がそれを特徴とする製品メタを持っている場合にtrueを返す "is_featured"関数です。または、投稿を照会し、商品ではない商品を除外することで、自分で設定しなくても使用できるすべての商品への参照です。

私は店頭(ホームページ)に使用しているカスタムテンプレートファイルを持っています、そして私が書く必要があるコードを単純化するためにこれらの機能のいくつかにアクセスしたいのですが、私はそれらにアクセスできないようです。

私の質問は:

プラグインで定義されている関数やオブジェクトは、私のテーマテンプレート(またはカスタムテンプレート。現在は子テーマを使用しています)で使用できますか?

6
Squadrons

はい、あなたはあなたのテーマのプラグインからの機能を使用することができます。 function_exists()関数を使用して、関数が確実に終了するようにしてください。私はこのようなテーマの1つでブレッドクラムプラスを使用しました。

<?php
if (function_exists('breadcrumbs_plus'))
{
    $breadcrumb_options = array(
            'prefix' => '<div id="breadcrumb">',
            'suffix' => '</div>',
            'title' => 'Du er her: ',
            'home' => 'Forside',
            'sep' => '/',
            'front_page' => false,
            'bold' => false,
            'blog' => __('Blog', 'rev'),
            'echo' => true
    );

    breadcrumbs_plus($breadcrumb_options);
}
?>
5
Box

答えは「はい」です。プラグインが機能を設定すれば、あなたのテーマでそれを使用することができます。 @Boxで説明したように、if(function_exists( ''))ラッパーを確実に使用して、将来プラグインに問題が発生した場合、またはテスト目的で無効にした場合でも、関数がなくてもサイトが壊れることはありません。 。 (そのシナリオでデバッグするのは悪夢になるでしょう)

プラグインがクラスやオブジェクトを使用している場合、そのオブジェクトがその関数を参照するものであることを理解するのは少し面倒ですが、私が行ったことはフックするために使用できるフィルタを探すことです。必要な情報.

例を挙げたり、使用しようとしているプラ​​グインを参照したりすると、その機能にアクセスする方法を見つけ出すのに役立つことがあります。

0
Crazycoolcam