将Post Meta附加到帖子内容的开头

时间:2017-03-11 23:29:56

标签: php wordpress

我正在尝试将发布的行为更改为Apple New Wordpress plugin。我的主题使用自定义字段进行视频嵌入,但插件无法识别该内容。我试图将元数据附加到Apple News的帖子开头。这是我的代码无效:

function add_post_meta_content($content) {
 $meta = get_post_meta( get_the_ID(), 'csco_post_embed', true );
 return .$meta.$content;
}
add_filter('apple_news_exporter_content_pre', add_post_meta_content);

apply_filters( 'apple_news_exporter_content_pre', $post->post_content, $post->ID );

如果我将代码更改为以下内容:

function add_post_meta_content($content) {
 $meta = get_post_meta( get_the_ID(), 'csco_post_embed', true );
 return 'Print this content before the post'.$meta.$content;
}
add_filter('apple_news_exporter_content_pre', add_post_meta_content);

apply_filters( 'apple_news_exporter_content_pre', $post->post_content, $post->ID );

它将“在帖子前打印此内容”附加到帖子的开头而没有问题。我在这里错过了什么?

2 个答案:

答案 0 :(得分:0)

插件已向您的过滤器发送$post->ID,因此无需致电get_the_ID()

试试这段代码:

function add_post_meta_content($content, $post_id) {
    $meta = get_post_meta( $post_id, 'csco_post_embed', true );
    return 'Print this content before the post'.$meta.$content;
}
add_filter('apple_news_exporter_content_pre', add_post_meta_content, 10, 2);

-

如果这不起作用,请确保在csco_post_embed项下的数据库元表中确实保存了一些内容。确认这一点的简便方法是打开数据库并快速查询:

SELECT *
FROM wp_postmeta
WHERE post_id = ENTER_YOUR_POST_ID_HERE AND meta_key = 'csco_post_embed';

答案 1 :(得分:0)

真棒!你让我99%的路程。不得不返回oembed以使视频正常工作。这是最后的代码,以防其他人来看。



function add_post_meta_content($content, $post_id) {
    $meta = wp_oembed_get( get_post_meta( $post_id, 'csco_post_embed', true ) );
    return $meta.$content;
}
add_filter('apple_news_exporter_content_pre', add_post_meta_content, 10, 2);