我有一个服务器端呈现的块,其中列出了带有页面缩略图和包含在链接中的标题的卡片。 我希望链接仅在我位于前端时获得 href,这样我就可以避免在后端错误地点击卡片并重定向到卡片页面。 这是我的代码:
$link = is_admin() ? ""
: " href="https://wordpress.stackexchange.com/questions/343583/" . get_permalink($post->ID) . """;
echo <<<CPTItem
<div class="cpt-list-item"><a class="cpt-list-item__link" $link>
CPTItem;
很遗憾 is_admin()
在块本身的后端返回 false。 我真的不知道为什么,我唯一能想到的是,这是因为该块是服务器端呈现的。 有办法解决吗?
如果后端有服务器端呈现的块,则它是通过 REST API 端点呈现的 /wp/v2/block-renderer/xyz/blockname
. 此端点调用您的渲染函数。 在前端直接调用渲染函数。 功能 is_admin()
检查是否请求了后端页面。 在 REST API 请求中没有后端页面,所以函数返回 false
在 REST API 请求上。
相反,您可以通过以下方式检查它是否是 REST API 请求:
if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
return 'Backend';
} else {
return 'Frontend';
};