Trying to get property ‘term_taxonomy_id’ of non-object in〜のエラーの解決方法

0
いいねをした人: 居ません
14件の投稿を表示中 - 1 - 14件目 (全14件中)
  • 投稿者
    投稿
  • #97094
    rumix63
    参加者
    8

    【お使いの Snow Monkey のバージョン】16.0.1
    【お使いの Snow Monkey Blocks のバージョン】14.0.0
    【お使いの Snow Monkey Editor のバージョン】7.0.0
    【お使いのブラウザ】Chrome
    【当該サイトのURL】https://jhrp.conohawing.com/

    ### 実現したいこと

    Trying to get property ‘term_taxonomy_id’ of non-object in〜エラーの解決方法を教えていただきたいです。

    ### 発生している問題

    Word Press5.9へのバージョンアップに伴い、不具合や表示確認などを検証するためにテスト環境にて本サイトのバックアップデータによりWP5.9上でテーマプラグイン共にSnowMonkey最新の対応バージョンで確認しています。

    上記ページで「Trying to get property ‘term_taxonomy_id’ of non-object in〜」のエラーがでます。

    ### 試したこと

    non-objectなので、‘term_taxonomy_id’ の値がないから表示できないよ、という内容かなとは思うのですが。

    調べてみたものの、エラーの内容自体を深く理解できておらずどのように解決すれば良いのかと思っております。(解決にはならないですが、ブロックを再取得したり、他の投稿カテゴリーを選ぶとこのようなエラーは出ませんでした。)

    お手数をお掛け致しますが、ご教授頂けますと幸いです。

    0
    いいねをした人: 居ません
    #97101
    キタジマ タカシ
    参加者
    2254

    こちら、次のアップデートで解消されます!

    お急ぎの場合はこちらのコードに差し替えてみてください。

    1
    いいねをした人:
    #97109
    Hajime Megane Ogushi
    参加者
    17

    リンクが切れてそうだったのでこちらです。

    https://github.com/inc2734/snow-monkey/blob/master/template-parts/common/entries/entries/posts.php
    2
    いいねをした人:
    #97116
    rumix63
    参加者
    8

    @キタジマ タカシ さん
    @Hajime Megane Ogushi さん

    リリース直後のお忙しい時に、早急に内容確認していただきありがとうございました!
    承知しました、アップデートありがとうございます。
    どうぞよろしくお願い致します。

    1
    いいねをした人:
    #97172
    キタジマ タカシ
    参加者
    2254

    @rumix63 さん
    すみません、ちょっと僕が勘違いしていて、この修正ではこの不具合は解消されないようです。僕の環境でエラーが出る状態を再現したいと思うのですが、詳しい設定などを教えてもらえますか?

    任意のタクソノミーでカスタムタクソノミーを指定し、カスタム投稿(「投稿のビューテンプレート」を使用)を表示しているのかなと思いましたがあっていますか? また、この一覧に関連するなにかをフックでカスタマイズしたり、テンプレートを上書きしたりしていますか?

    0
    いいねをした人: 居ません
    #97174
    westwing
    閲覧者
    4

    全く同じではありませんが、同様のエラーが出ていますので便乗させてください

    【お使いの Snow Monkey のバージョン】16.0.1
    【お使いの Snow Monkey Blocks のバージョン】14.0.0
    【お使いの Snow Monkey Editor のバージョン】7.0.0
    【お使いのブラウザ】Chrome
    【当該サイトのURL】

    ### 発生している問題

    Attempt to read property “term_taxonomy_id” on null in のエラー

    WP5.9へのアップデートをしたところ、任意のタクソノミーの投稿でエラーが出ます。
    エディターでは正常に表示されています。

    ### 試したこと

    他のカテゴリーを選んでみましたがエラーは同じでした。

    1
    いいねをした人:
    #97182
    キタジマ タカシ
    参加者
    2254

    @westwing さん
    ブロックのレイアウトを「カルーセル(リッチメディア)」に変更しても同様のエラーがでますか?

    0
    いいねをした人: 居ません
    #97186
    westwing
    閲覧者
    4

    レイアウトを「カルーセル(リッチメディア)」に変更しましたが、エラーは同じでした。

    上の添付画像は、通常の投稿をタグで絞り込んでいますが、別ページでカスタム投稿をカスタムタクソノミーで絞り込んでも同じエラーが発生しています。

    1
    いいねをした人:
    #97188
    rumix63
    参加者
    8

    @キタジマ タカシ さん

    お世話になっております、ご連絡並びにご確認を頂きありがとうございます。

    詳しい設定状況ですが、
    ・投稿のタクソノミー(カテゴリー)ですが、デフォルト機能で設定しているだけで、プラグインや     my-snow-monkeyで独自のタクソノミー設定などはしていません。

    ・https://jhrp.conohawing.com/partner_page/
    エラーの出るページですが、固定ページに>任意のタクソノミーの投稿 ブロックにて表示。
    →他のカテゴリー選択するとエラーは出ない。

    ・>この一覧に関連するなにかをフックでカスタマイズしたり、テンプレートを上書きしたりしていますか?

    →関連するフックカスタマイズやテンプレート上書きはしていません。
    関連のないページでアクションフックで表示箇所を追加しているのみです。

    よろしくお願い致します。
    まだ情報が足りないようでしたらおっしゃってください、書き込みます!

    1
    いいねをした人:
    #97193
    rumix63
    参加者
    8

    @キタジマ タカシ さん

    post.phpファイルの内容は下記となります。

    $args = wp_parse_args(
    	// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
    	$args,
    	// phpcs:enable
    	[
    		'_entries_layout'      => 'rich-media',
    		'_excerpt_length'      => null,
    		'_force_sm_1col'       => false,
    		'_infeed_ads'          => false,
    		'_item_thumbnail_size' => 'medium_large',
    		'_item_title_tag'      => 'h3',
    		'_display_item_meta'   => 'post' === $args['_name'] ? true : false,
    		'_display_item_terms'  => 'post' === $args['_name'] ? true : false,
    		'_posts_query'         => false,
    	]
    );
    
    if ( ! $args['_posts_query'] ) {
    	return;
    }
    
    $data_infeed_ads = $args['_infeed_ads'] ? 'true' : 'false';
    $force_sm_1col   = $args['_force_sm_1col'] ? 'true' : 'false';
    ?>
    
    <ul
    	class="c-entries c-entries--<?php echo esc_attr( $args['_entries_layout'] ); ?>"
    	data-has-infeed-ads="<?php echo esc_attr( $data_infeed_ads ); ?>"
    	data-force-sm-1col="<?php echo esc_attr( $force_sm_1col ); ?>"
    >
    	<?php while ( $args['_posts_query']->have_posts() ) : ?>
    		<?php $args['_posts_query']->the_post(); ?>
    		<li class="c-entries__item">
    			<?php
    			$_terms = [];
    			if ( $args['_display_item_terms'] ) {
    				$_terms              = Helper::get_the_public_terms( get_the_ID() );
    				$_hierarchical_terms = array_filter(
    					$_terms,
    					function( $_term ) {
    						return get_taxonomy( $_term->taxonomy )->hierarchical;
    					}
    				);
    				if ( $args['_posts_query']->is_tax() || $args['_posts_query']->is_category() || $args['_posts_query']->is_tag() ) {
    					$tax_query = $args['_posts_query']->get( 'tax_query' );
    					$term      = $tax_query
    						? get_term( $tax_query[0]['terms'][0], $tax_query[0]['taxonomy'] )
    						: $args['_posts_query']->get_queried_object();
    
    					$is_term             = ! is_wp_error( $term ) && ! is_null( $term );
    					$is_the_public_therm = false;
    					foreach ( $_hierarchical_terms as $_term ) {
    						if ( $term->term_taxonomy_id === $_term->term_taxonomy_id ) {
    							$is_the_public_therm = true;
    							break;
    						}
    					}
    
    					$_terms = $is_term && $is_the_public_therm ? [ $term ] : $_terms;
    				}
    			}
    
    			Helper::get_template_part(
    				'template-parts/loop/entry-summary',
    				$args['_name'],
    				[
    					'_context'        => $args['_context'],
    					'_entries_layout' => $args['_entries_layout'],
    					'_excerpt_length' => $args['_excerpt_length'],
    					'_thumbnail_size' => $args['_item_thumbnail_size'],
    					'_terms'          => $_terms ? [ $_terms[0] ] : [],
    					'_title_tag'      => $args['_item_title_tag'],
    					'_display_meta'   => $args['_display_item_meta'],
    				]
    			);
    			?>
    		</li>
    	<?php endwhile; ?>
    	<?php wp_reset_postdata(); ?>
    </ul>
    1
    いいねをした人:
    #97225
    キタジマ タカシ
    参加者
    2254

    これに置き換えるとどうでしょうか!?

    use Framework\Helper;
    
    $args = wp_parse_args(
    	// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
    	$args,
    	// phpcs:enable
    	[
    		'_entries_layout'      => 'rich-media',
    		'_excerpt_length'      => null,
    		'_force_sm_1col'       => false,
    		'_infeed_ads'          => false,
    		'_item_thumbnail_size' => 'medium_large',
    		'_item_title_tag'      => 'h3',
    		'_display_item_meta'   => 'post' === $args['_name'] ? true : false,
    		'_display_item_terms'  => 'post' === $args['_name'] ? true : false,
    		'_posts_query'         => false,
    	]
    );
    
    if ( ! $args['_posts_query'] ) {
    	return;
    }
    
    $data_infeed_ads = $args['_infeed_ads'] ? 'true' : 'false';
    $force_sm_1col   = $args['_force_sm_1col'] ? 'true' : 'false';
    ?>
    
    <ul
    	class="c-entries c-entries--<?php echo esc_attr( $args['_entries_layout'] ); ?>"
    	data-has-infeed-ads="<?php echo esc_attr( $data_infeed_ads ); ?>"
    	data-force-sm-1col="<?php echo esc_attr( $force_sm_1col ); ?>"
    >
    	<?php while ( $args['_posts_query']->have_posts() ) : ?>
    		<?php $args['_posts_query']->the_post(); ?>
    		<li class="c-entries__item">
    			<?php
    			$_terms = [];
    			if ( $args['_display_item_terms'] ) {
    				$_terms = Helper::get_the_public_terms( get_the_ID() );
    				if ( $args['_posts_query']->is_tax() || $args['_posts_query']->is_category() || $args['_posts_query']->is_tag() ) {
    					$_hierarchical_terms = array_filter(
    						$_terms,
    						function( $_term ) {
    							return get_taxonomy( $_term->taxonomy )->hierarchical;
    						}
    					);
    
    					$tax_query = $args['_posts_query']->get( 'tax_query' );
    
    					$term = null;
    					if ( ! empty( $tax_query[0]['terms'] ) && ! empty( $tax_query[0]['taxonomy'] ) ) {
    						$terms = (array) $tax_query[0]['terms'];
    						$term  = get_term( $terms[0], $tax_query[0]['taxonomy'] );
    					} else {
    						$term = $args['_posts_query']->get_queried_object();
    					}
    
    					$is_term = ! is_wp_error( $term ) && ! is_null( $term );
    					if ( $is_term ) {
    						// If there is a taxonomy specification, use it.
    						// However, if the taxonomy does not have a hierarchy, use the taxonomy with a hierarchy.
    						if ( get_taxonomy( $term->taxonomy )->hierarchical ) {
    							$_terms = [ $term ];
    						} else {
    							foreach ( $_hierarchical_terms as $_term ) {
    								if ( $term->term_taxonomy_id === $_term->term_taxonomy_id ) {
    									$_terms = [ $term ];
    									break;
    								}
    							}
    						}
    					}
    				}
    			}
    
    			Helper::get_template_part(
    				'template-parts/loop/entry-summary',
    				$args['_name'],
    				[
    					'_context'        => $args['_context'],
    					'_entries_layout' => $args['_entries_layout'],
    					'_excerpt_length' => $args['_excerpt_length'],
    					'_thumbnail_size' => $args['_item_thumbnail_size'],
    					'_terms'          => $_terms ? [ $_terms[0] ] : [],
    					'_title_tag'      => $args['_item_title_tag'],
    					'_display_meta'   => $args['_display_item_meta'],
    				]
    			);
    			?>
    		</li>
    	<?php endwhile; ?>
    	<?php wp_reset_postdata(); ?>
    </ul>
    0
    いいねをした人: 居ません
    #97234
    westwing
    閲覧者
    4

    posts.phpを上のコードに置き換えたところ、エラーはなくなりました(通常の投稿+タグ、カスタム投稿+カスタムタクソノミーどちらの組み合わせも)

    迅速な対応ありがとうございました。

    1
    いいねをした人:
    #97240
    rumix63
    参加者
    8

    @キタジマ タカシ さん

    コードありがとうございました!
    post.phpを上記に書き換えたら、エラーは治りました。

    お忙しいところ、お時間頂戴しまして本当にありがとうございます。

    今回のエラーはこちらで何か不要な設定をしていたりで影響があり、アップデートのタイミングで値が取れずエラーになるのでしょうか?
    このようなエラーが出るたびに、フォーラムの皆さんに頼ることになってしまうので、もっと理解していかないとです。。今回もありがとうございました。

    0
    いいねをした人: 居ません
    #97241
    キタジマ タカシ
    参加者
    2254

    ちょっと僕もちゃんと把握できていないのですが、5.9 からということであれば、5.9 で返ってくる値が変更されたりしたのかもしれません。

    v16.0.3 としてリリースしました! アップデートしてみて問題なければトピッククローズお願いします!

    1
    いいねをした人:
14件の投稿を表示中 - 1 - 14件目 (全14件中)
  • トピック「Trying to get property ‘term_taxonomy_id’ of non-object in〜のエラーの解決方法」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。