@alex1nd

Как исправить ошибку после перехода на php 8?

Warning: Attempt to read property "ID" on null

Вот в этих местах ругается

<?php $cf = get_post_meta($post->ID, 'n', true);
if (!empty($cf)) {
echo '<meta name="robots" content="noindex,follow"/>';
}
?><?php if ( is_search() || is_404() || in_category(3) || is_tag() || is_author() ) { ?>
<meta name="robots" content="noindex,follow" />
<?php } ?>


<meta property="og:description" content="<?php echo (get_post_meta($post->ID, 'd', true)); ?>"/>
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Ошибка не имеет отношения к php8.
Используйте get_the_ID()

То есть так:
<?php $cf = get_post_meta(get_the_ID(), 'n', true);
<?php if (!empty($cf)) { ?>
    <meta name="robots" content="noindex,follow"/>
<?php } ?>

<?php if ( is_search() || is_404() || in_category(3) || is_tag() || is_author() ) { ?>
    <meta name="robots" content="noindex,follow" />
<?php } ?>

<meta property="og:description" content="<?= get_post_meta(get_the_ID(), 'd', true) ?>"/>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега PHP
Вордпрессу еще года два на восмерку путь заказан. Как минимум.

Но вообще специально для таких вот печальных случаев именно в 8-ке придумали
<?php $cf = get_post_meta($post?->ID, 'n', true);

Но тогда этот код перестанет работать на всех предыдущих версиях.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы