0

次のようなforeachステートメントがあります。

foreach ($term['terms'] as $term_single) {
    $term_object = get_term_by('name', $term_single, $tax_name);

    switch ($term['tax_name']) {
        case has_action( "basey_taxonomy_search_teaser_{$tax_name}" ) :
            do_action( "basey_taxonomy_search_teaser_{$tax_name}",$term_object, $term_single );
        break;

        default:
            echo basey_taxonomy_search_teaser_default($term_object,$term_single);
        break;
    }
}

したがって、この中に、関数に渡す 変数$term_objectと変数の両方があります。ここで奇妙なことは、別の場所で次のことを行う場合です。$term_singlebasey_taxonomy_search_teasr_default()

function basey_taxonomy_search_teaser_default($term_object,$term_single) {

    ob_start();

    do_action('basey_taxonomy_teaser_before');
    echo '<article id="tax-' . $term_object->term_id . '" class="' . $term_object->taxonomy . '">';
    echo '<a href="';
    echo get_term_link($term_object);
    echo '">';
    echo $term_single;
    echo '</a>';
    echo '</article>';
    do_action('basey_taxonomy_teaser_after');

    $display = apply_filters('basey_taxonomy_teaser_default_view', ob_get_clean());
    return $display;
}

$term_object私のローカルホストでは問題なく動作しますが、サーバーでオンラインになると$term_single、未定義のエラーが返されます。関数定義で最初の呼び出しの値を使用する場合、より良い方法はありますか? ここでも、ローカルホスト (MAMP) では機能するのに、サーバーではエラーになる理由について少し混乱しています。それがphp.iniの問題であることは別として(これはより基本的なプログラミングの実践だと思います)、私が間違っていることと、関数を介して値を渡す際に私の仮定がずれているかどうかを確認します。ありがとう!

アップデート

var_dump($term_object)直後$term_object = get_term_by('name', $term_single, $tax_name);

ローカルホストは私に与えます:

object(stdClass)#181 (10) { ["term_id"]=> string(3) "127" ["name"]=> string(4) "Base" ["slug"]=> string(4) "base" ["term_group"]=> string(1) "0" ["term_order"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "130" ["taxonomy"]=> string(18) "profile_categories" ["description"]=> string(4) "Base" ["parent"]=> string(1) "0" ["count"]=> string(1) "2" }

ライブサーバーは私に与えます:

bool(false)

うーん、かなりイライラします。

4

2 に答える 2

0

ヒットしているDBが異なり、$ term_singleがnullであるため、$ term_objectがnullになります。関数を呼び出して、死にかけているオブジェクトを使用しようとすると、

于 2012-10-18T13:47:50.260 に答える
0

お探しの用語はライブ サーバーに存在しないようです。

于 2012-10-18T14:01:02.327 に答える