[ 解決済 ] カスタム投稿の表示変更について

VWSとは フォーラム Lightning [ 解決済 ] カスタム投稿の表示変更について

[ 解決済 ] カスタム投稿の表示変更について

  • このトピックには4件の返信、3人の参加者があり、最後にgundamにより4週、 1日前に更新されました。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #94055

    gundam
    参加者

    ■ WordPress のバージョン
    6.5.4

    ■ テーマ・プラグインは全て最新版で確認してください。
    確認しました。

    ■ テーマの種類
    Lightning ( G3 ) + Lightning G3 Pro Unit

    ■ テーマのバージョン
    15.23.1

    ■ Pro Unit のバージョン
    0.26.8

    ■ スキンの種類
    VEKUAN

    ■ スキンのバージョン
    0.4.4

    ■ 期待する動作
    以前このフォーラムでお世話になったことなのですが

    add_action(
    ‘lightning_entry_body_before’,
    function () {
    if (is_single() && ‘information’ === get_post_type()) {
    $info_cat = get_the_term_list($post->ID, ‘info-type’);
    $info_time = get_the_date();

    echo ‘<header class=”p-entry_header”>’;
    echo ‘<div class=”p-entry_meta”>’;
    echo ‘<div class=”p-entry_cat”>’ . $info_cat . ‘</div>’;
    echo ‘<div class=”p-entry_date”>’ . $info_time . ‘</div>’;
    echo ‘</div>’;
    echo ‘<h1 class=”p-entry_title”>’ . get_the_title() . ‘</h1>’;
    echo ‘</header>’;
    }
    }
    );

    レイアウトの変更になります。
    気がついたら、いつの間にか

    Warning: Undefined variable $post in ・・・
    public_html/wp-content/themes/lightning_child/functions.php on line 57

    という表示がHP上に出るようになりました。
    最近PHPを8.1.22に変更したくらいなのですが、何が悪いのでしょうか?

    57行目は
    $info_cat = get_the_term_list($post->ID, ‘info-type’);
    vscodeで編集をしているのですが$postに赤い波下線があり
    Undefined variable ‘$post’.intelephense(P1008)という問題になっています。

    しかし、ページ上では、きちんと
    <div class=”p-entry_cat”>’ . $info_cat . ‘</div>
    カテゴリーが表示されています。

    $postは何か問題があるのでしょうか?以前は問題なかったのですけれども。

    ■ 自分で試した事
    $info_cat = get_the_term_list($post->ID, ‘info-type’);
    echo ‘<div class=”p-entry_cat”>’ . $info_cat . ‘</div>’;

    この行を削除すると、HP上のエラー表示は消えますが
    当然、カテゴリーが表示されなくなります。

    ■ 症状が発生するブラウザ
    safari

    ■ 実際の症状
    エラーが出る。以前は出なかった。

    #94056

    mk
    モデレーター

    お世話になっております。ベクトルスタッフの松田です。
    おそらくエラーの原因は$post変数が未定義であるためかと思います。
    if ( is_single() && ‘information’ === get_post_type() ){
    の上にglobal $post;を入れたら解消されるかもしれません。
    ご確認をよろしくお願いいたします。

    #94059

    gundam
    参加者

    ありがとうございます。
    問題なく以前のように表示されました。

    なぜ、以前は何もエラーなく表示されていたのか謎ですが。
    未定義、理解いたしました。

    ありがとうございました。

    #94410

    > なぜ、以前は何もエラーなく表示されていたのか謎

    とのことですが、その答えはご自分でお書きになっています。
    最初に、
    「最近PHPを8.1.22に変更した」
    とのことですがそれが答えです。

    ごく簡単にいうと、
    以前のPHPは未定義でも許されていた→PHP8からは許されなくなった
    という大きな変更があったからです。

    #94590

    gundam
    参加者

    しあわせ屋根屋様
    ありがとうございます。
    PHPのバージョンで仕様が変わったと言うことだったのですね。

    ありがとうございました。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • このトピックに返信するにはログインが必要です。