Как исправить ошибку после перехода на php 8?
Вордпрессу еще года два на восмерку путь заказан. Как минимум. 

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

Но тогда этот код перестанет работать на всех предыдущих версиях.
Ошибка не имеет отношения к 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) ?>"/>