the_time()
这就是问题所在。它回声其输出。短代码实际上按以下顺序发生:
分析包含短代码的文本以查找短代码执行每个短代码并存储其输出每个短代码都将替换为其输出问题是如果你echo
在短代码内部,其输出将在步骤2打印到屏幕上,而不是在步骤3中的适当位置。
所以现在发生的是:
文本,[c][year]
已分析。这个[c]
和[year]
找到了短代码
[c]
已执行,以及©
存储以备以后更换[year]
执行时,输出the_time()
打印到屏幕上,然后null
存储以备以后更换©
打印到屏幕上,其中[c]
是的[year]
被替换为nothing,因为快捷码回调没有返回任何内容因此您可以看到,年份是在版权符号之前输出的,因为它是在步骤3中作为执行短代码的一部分输出的,而在步骤4中版权符号是输出的。
您需要更换the_time()
具有get_the_time()
以便将年份返回给$year
变量,未打印。