利用Gutenberg块进行WP查询并获取其属性

时间:2019-03-02 作者:Tomáš Vavřinka

我需要在头版的youtube视频上获取古腾堡youtube区块的最新帖子。

我想我需要:

1) 查询此类帖子

2) 从块中提取youtube URL

有没有办法做到这一点?

1 个回复
最合适的回答,由SO网友:Tomáš Vavřinka 整理而成

经过几个小时的谷歌搜索,我想出了以下解决方案。也许一次对某人有帮助。

1) 查询帖子使用gutenberg youtube块的位置:

$args = array(
    \'post_type\'         => \'post\',
    \'post_status\'       => \'publish\',
    \'s\'                 => \'core-embed/youtube\',
    \'posts_per_page\'    => 1
);

$query = new WP_Query($args);
2)从帖子的youtube块中提取URL

$post_id = 117;
$post = get_post($post_id);
$blocks = parse_blocks( $post->post_content );


function findYoutubeBlock(array $blocks) {
    return $blocks[\'blockName\'] == \'core-embed/youtube\';
}


if (has_block(\'core-embed/youtube\', $post_id)) {
    $youtube_block = reset(array_filter($blocks, \'findYoutubeBlock\'));
    $youtube_url =  $youtube_block[\'attrs\'][\'url\'];
}

相关推荐

Use oEmbed for static html

我正在尝试添加jQuery插件(https://github.com/rmanivannan/speedometer-jquery-plugin) 到Wordpress页面(不是post),但是插件的行为不符合预期。我认为这可能与使用我的Wordpress主题生成页面时脚本引用、css引用和Javascript被破坏的方式有关。是否可以:-将包含控件的静态HTML页面上载到子域-使用oEmbed将静态HTML页面包括在Wordpress页面中i、 e.子域将是主域的oEmbed提供程序?