在函数中回显 get_post_meta()

我没有找到像我这样的类似问题,所以我希望有人能向我解释我做错了什么。

我想通过一个函数从后端 wordpress 自定义字段中回显。这就是我所做的:

http://img.mukewang.com/635b39000001c93905670161.jpg

功能


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);

以上返回一个空的元数据:

http://img2.mukewang.com/635b390b0001764602530040.jpg

在您评论“为什么不使用现有的 SEO 插件?”之前 ,这就是我想消除带有太多未使用功能的插件并尝试使用 WP 现有功能的全部内容。



慕沐林林
浏览 96回答 3
3回答

慕桂英546537

将此功能与帖子 ID/ 一起使用get_post_meta(&nbsp;$post->ID,&nbsp;'your_meta_key',&nbsp;true&nbsp;);谢谢

qq_遁去的一_1

如果您通过 db 中的 get_post_meta 保存 og_title,那么您肯定会拥有 og_title。但似乎你没有通过 post_id 这是强制性的。请仔细阅读WP上提到的文档https://developer.wordpress.org/reference/functions/get_post_meta/您需要放置 post_id 以获取元数据。请参阅下面的代码function add_meta_data() {&nbsp; &nbsp; if ( is_page() ) {&nbsp; &nbsp; &nbsp; &nbsp; echo'<meta property="og:title" content="' . get_post_meta($post_id ,'og_title' ) . '">';&nbsp; &nbsp; }add_action('wp_head','add_meta_data',1);

qq_笑_17

我在函数中犯的错误$post_id是未定义,因为这不是全局变量。需要做的是:function add_meta_data() {&nbsp; &nbsp; if ( is_page() ) {&nbsp; &nbsp; &nbsp; &nbsp; $post_id = get_the_id();&nbsp; &nbsp; &nbsp; &nbsp; echo'<meta property="og:title" content="' . get_post_meta( $post_id, 'og_title', true ) . '">';&nbsp; &nbsp; }add_action('wp_head','add_meta_data',1);
打开App,查看更多内容
随时随地看视频慕课网APP