在php中获取可重用块

Posted

技术标签:

【中文标题】在php中获取可重用块【英文标题】:Get reusable block in php 【发布时间】:2019-08-18 07:37:32 【问题描述】:

对于我的生活,我找不到任何关于如何做到这一点的信息:只需在主题模板中通过 php 输出一个可重用的古腾堡块。似乎应该是可行的。有人吗?

【问题讨论】:

【参考方案1】:

As pointed out by gtamborero here,你可以使用get_page_by_title(),但是你需要指定这是一个'wp_block'。他的例子对我有用(使用 WP 5.8.1):

get_page_by_title( 'Your Title', OBJECT, 'wp_block' );

我是这样使用的:

$myPost = get_page_by_title( 'Your Title', OBJECT, 'wp_block' );
$myContent = apply_filters('the_content', $myPost->post_content);
echo $myContent;

【讨论】:

【参考方案2】:

我刚刚发现了这个方便的小 sn-p。它将可重用块添加为管理链接。在那里,您可以轻松确定所需的可重用块的 ID。 https://github.com/WordPress/gutenberg/issues/15549

add_menu_page( 'linked_url', 'Reusable Blocks', 'read', 'edit.php?post_type=wp_block', '', 'dashicons-editor-table', 22 );


【讨论】:

非常感谢!我不知道为什么 Wordpress 默认没有启用此功能。【参考方案3】:

可能会回答我自己的问题。请告诉我是否有更好/更简单的方法来做到这一点。

<?php
    // get reusable gutenberg block:
    $gblock = get_post( 7418 );
    echo apply_filters( 'the_content', $gblock->post_content );
?>

我能看到的第一个缺点是,必须查找块的帖子 ID 很不方便。

【讨论】:

如何找到可重用块的 ID? 我知道的唯一方法是去这里:/wp-admin/edit.php?post_type=wp_block 然后将鼠标悬停在您的块的编辑链接上并查看 URL 中的 ID。跨度> @protohominid 获取gutenberg块(不是ID,内容本身)应该更容易,我也花了很多时间寻找直接的解决方案,没有办法...... site.com/wp-admin/edit.php?post_type=wp_block 我同意。我想要一个使用 get_page_by_title() 之类的解决方案,因为将主题移动到新站点时 ID 会发生变化。

以上是关于在php中获取可重用块的主要内容,如果未能解决你的问题,请参考以下文章

PHP “substr_replace()”释放后重用远程内存破坏漏洞

编写可移植的PHP代码

具有委托方法的可重用 UIPickerView

由于可重用性问题,tableview 单元格上的图像重复

合并YAML中的可重用块(Symfony框架)

如何在 Django 中重用可重用的应用程序