使用Guttenberg的发布格式链接

时间:2019-09-22 作者:Patrick Raiford

我在youtube上学习了一个教程,制作了一个名为content link的帖子格式页面,该页面使用了帖子格式类型的链接。该模板仅包含以下代码:

<a href="<?php get_the_content(); ?>"><?php echo the_title(); ?></a>

这篇文章只有标题,内容中只有一个链接。Gutenberg将WP段落的两个注释标记之间的链接放在了列表中,因为链接与html版本的注释标记之间有链接,所以链接无法工作。然而,如果我删除激活classic编辑器的注释标记,链接就会起作用。我的问题是,是要让上述代码与Gutenberg编辑器协同工作,还是只与classic编辑器协同工作?

这里是我所学课程的链接。https://www.youtube.com/watch?v=jrBuH8JOiYM&list=PLzWy6s_olo5FmMv_EANv_1MV7i7vOMEiA&index=2&t=0s

非常感谢。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

这里有很多问题,让我们逐一解决

1。返回内容的函数和输出内容的函数

get_the_content 不输出任何内容,它返回它。所以你需要echo 要使结果可见,请执行以下操作:

echo get_the_content();
以开头的函数get_ 几乎总是返回一个值。

以开头的函数the_ 几乎总是输出一个值,例如:

the_content();
这就引出了下一个问题:

echo the_title();
这与:

echo \'\';
the_title();
返回内容的函数需要echo 或者应该将它们分配给变量。

这为我们提供了一个正确的版本,它的工作原理相同,但没有bug:

<a href="<?php echo get_the_content(); ?>"><?php the_title(); ?></a>
但还是有问题

2。如果您的内容不包含链接,会发生什么情况?如果用户在里面放了一些恶意的东西,或者输入了一个错误怎么办?

如果我们应用转义,我们可以保证它将是一个URL:

<a href="<?php echo esc_url( get_the_content() ); ?>"><?php the_title(); ?></a>
如果放了恶意的东西,这可能是一个奇怪的乱码URL,但它始终是一个URL,100%保证。这一假设得到了实施,不再是“它应该是一个URL”或“我怀疑它永远不会是一个问题”的问题,而是我们现在有了一个铁一般的保证,即它始终是一个URL

转义是您可以进行的最大安全改进之一,并修复了大量安全问题。尽管如此,它几乎总是被排除在教程之外,被主题开发人员忽视,并且在主题和产品指南中缺失。晚点逃跑,经常逃跑,这将极大地提高你的密码安全性。

3。OEmbed、Gutenberg和Post格式

如果URL是OEmbed值呢?E、 Youtube视频?编辑器尝试将其转换为自动嵌入的播放器the_content(), 但是get_the_content() 不会的。

因此,我们需要将其替换掉<a> 元素不起作用。相反,让我们进一步简化:

the_content();
对于链接帖子,只需使用包含链接的普通块即可。

4。Post格式的未来

Post格式是为了向后兼容而保留的,将来的Post格式在基于块的内容世界中没有多大意义。

E、 g.只输出一个包含链接的块,以便链接帖子。视频贴子就是只有视频块的贴子,等等

这就是你应该瞄准的范式,也是那些从事编辑器工作的人目前的想法。帖子格式从来没有那么成功过

youtube指南和所有过时的文章一样有用,但它并不能涵盖所有内容,因此应该谨慎对待。使你的研究多样化,探索其他做事方式,并继续发展。

这段视频只是当时人们对如何做事的想法,但它不是唯一的方法,也不是最好的方法。在未来,基于块的布局和自定义块将比自定义页面模板和其他旧方法更有用、更灵活

相关推荐