Эхо get_post_meta () в функции - PullRequest
1 голос
/ 11 марта 2020

Я не нашел подобных вопросов, как у меня, поэтому я надеюсь, что кто-то может объяснить мне, что я делаю неправильно.

Я хотел бы отгадывать пользовательские поля бэкэнда wordpress через функцию. Это то, что я делаю:

screenshot backend page

Функция

function add_meta_data() {
    if ( is_page() ) {
        echo'<meta property="og:title" content="' . get_post_meta( $post_id, 'og_title', true ) . '">';
    }
add_action('wp_head','add_meta_data',1);

Выше приведено в пустой мета данные:

frontend page head result

Прежде чем вы прокомментируете «Почему бы не использовать существующие плагины SEO?» , вот и все, что я делаю » Я хотел бы исключить плагины, которые имеют слишком много неиспользуемых функций, и попытаться использовать существующие функции из WP.

Ответы [ 3 ]

0 голосов
/ 11 марта 2020

Если вы сохраняете og_title через get_post_meta в db, то у вас определенно будет og_title. Но, похоже, вы не передаете post_id, который является обязательным.

Пожалуйста, go через do c, упомянутый в WP

https://developer.wordpress.org/reference/functions/get_post_meta/

Вам нужно указать post_id для получения метаданных. Смотрите код ниже

function add_meta_data() {
    if ( is_page() ) {
        echo'<meta property="og:title" content="' . get_post_meta($post_id ,'og_title' ) . '">';
    }
add_action('wp_head','add_meta_data',1);
0 голосов
/ 11 марта 2020

Ошибка, которую я сделал в функции, заключается в том, что $post_id не определено, поскольку это не глобальная переменная. Что нужно сделать, это:

function add_meta_data() {
    if ( is_page() ) {
        $post_id = get_the_id();
        echo'<meta property="og:title" content="' . get_post_meta( $post_id, 'og_title', true ) . '">';
    }
add_action('wp_head','add_meta_data',1);
0 голосов
/ 11 марта 2020

используйте эту функцию с идентификатором записи /

get_post_meta( $post->ID, 'your_meta_key', true );

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...