Php 插件函数不拉数据

Php 插件函数不拉数据,php,wordpress,Php,Wordpress,我目前正在开发一个插件。因此,我在头中插入了一块带有函数的代码。该代码应该从自定义字段中提取数据,但它返回空标记。但是,如果我直接将其添加到标题中,它就会起作用。你知道问题出在哪里吗?我的代码如下所示 <?php function pyramid() { ?> <meta name="description" content="<?php $desc = get_post_meta($post->ID, 'description', true); if($de

我目前正在开发一个插件。因此,我在头中插入了一块带有函数的代码。该代码应该从自定义字段中提取数据,但它返回空标记。但是,如果我直接将其添加到标题中,它就会起作用。你知道问题出在哪里吗?我的代码如下所示

<?php 
function pyramid() {
  ?>
<meta name="description" content="<?php $desc = get_post_meta($post->ID, 'description', true); if($desc) { echo $desc; } else { 

    // do nothing; 

} ?>" />
<?php
}; 
add_action( 'wp_head', 'pyramid' );

?>


global$post需要添加到金字塔函数中

或者,您也可以使用
获取\u ID()
而不是
$post->ID

另外,如果你想,你可以把你的金字塔函数缩短到

function pyramid() {
    global $post;
    ?><meta name="description" content="<?= get_post_meta($post->ID, 'description', true) ?: '' ?>" /> <?php
}; 
add_action( 'wp_head', 'pyramid' );
函数金字塔(){
全球$员额;

?>post meta中是否有描述字段?@Vel是的,我有。如果我直接在标题上拖动它,它会起作用。请尝试在金字塔函数的开头添加
global$post;
。@Mr.Me就是这样做的。非常感谢!。
function pyramid() {
    global $post;
    ?><meta name="description" content="<?= get_post_meta($post->ID, 'description', true) ?: '' ?>" /> <?php
}; 
add_action( 'wp_head', 'pyramid' );