【问题标题】:Wordpress get_post_meta does not return when using variable使用变量时 Wordpress get_post_meta 不返回
【发布时间】:2013-07-25 16:43:41
【问题描述】:

我正在尝试获取一个插件来读取附件的帖子元数据,并使用它来更新它所附加的帖子的内容。我在我的主题 function.php 中使用以下内容:

add_action( 'afip_created_post', 'get_desc', 10, 2 );
function get_desc( $post_id, $attachment_id ) {

$postmeta = get_post_meta ($attachment_id, '_wp_attachment_metadata', true);

    $meta = $postmeta['image_meta'];
    $mmwwdesc = $meta['description'];
    wp_update_post( array( 'ID' => $post_id, 'post_content'  => $mmwwdesc  ) );

}

然后在插件中使用这一行来挂钩函数

do_action( 'afip_created_post', $new_post_id, $post_id );

如果我用另一个帖子中的数字(即“15”)填写变量“$attachment_id”,我会在已发布的帖子中插入描述。如果我将输出更改为wp_update_post( array( 'ID' => $post_id, 'post_content' => $attachment_id ) );,我会在已发布帖子的正文中得到回显的 ID 号。我不明白为什么原始代码不起作用,因为 $attachment_id 似乎已正确定义。我只是 php 的初学者。有什么明显的我做错了吗?变量$attachment_id 在应该返回时是否被回显,或者类似的技术?

背景:我正在使用两个 wordpress 插件,一个称为媒体元数据工作流向导 (MMWW),另一个称为自动特色图片发布 (AFIP)。 MMWW 提取图像元数据并将其作为后期元数据写入数据库。 AFIP 使用上传的媒体创建新帖子,并将每个图像附加到帖子,将其设置为帖子缩略图。我不认为这是调用函数时元数据未准备好的问题,因为 AFIP 在媒体上传后创建帖子,并将其元数据写入数据库。在创建帖子之后,我还将我的函数作为帖子的更新进行挂钩。

我进行了广泛的搜索,反复试验,但没有成功。谁能帮帮我?

谢谢!

【问题讨论】:

    标签: wordpress metadata


    【解决方案1】:

    我认为您的问题是 get_post_meta 函数在 functions.php 中返回空白。处理这个问题的方法是使用带有 wordpress 的 MYSQL 查询来返回您的 psot 元中的数据。

    首先你需要全局 $wpdb 对象,所以在你的函数开始时写:global $wpdb; 然后您需要使用 mysql 和 $wpdb 对象执行 get_post_meta 操作:

    $postmeta = $wpdb->get_var("SELECT meta_value FROM $wpdb->postmeta" WHERE meta_key = '_wp_attachment_metadata' AND post_id = $attachment_id");
    

    用 wpdb 查询替换你的 get_post_meta 行,你应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 2016-04-03
      相关资源
      最近更新 更多