【问题标题】:Wordpress - changing title tag within shortcode [duplicate]Wordpress - 在短代码中更改标题标签[重复]
【发布时间】:2018-12-03 16:10:02
【问题描述】:

似乎对此有一些困难。

我添加了一些简码。

add_shortcode("do_something", array($this, "my_function"));

所以我将 [do_something] 放在 wordpress 帖子中,它会运行我的功能。伟大的。我想要什么。

my_function 在这种情况下会获取一些要在页面上显示的动态内容(例如产品列表)。这也一切正常。在这个函数中,我还建立了一个我想要在我的页面中的字符串。

我似乎无法在“my_function”中使用它。如果我将它放在函数之外,它会起作用,但是我没有动态设置标题标签所需的内容。

我用来设置标题的代码如下:

add_filter( 'pre_get_document_title', 'some_callback', 10 );

还有 some_callback 函数:

    function some_callback($data){$title_tag = "test 123";  return $title_tag;}

如前所述,如果我把它放在同一个地方,我会使用 add_shortcode,例如它可以工作,如果我把它放在“my_function”中它就不会。

我认为这与操作顺序有关,但我想不出办法。

干杯!

【问题讨论】:

  • 不。不过还是谢谢。
  • 不。我在发布之前进行了搜索..
  • 目标是在帖子内容中使用简码设置标题吗? WordPress 短代码不是为此而设计的,但我认为可以通过一些巧妙的自定义代码来完成。如果这是您的目标,请告诉我,我将尝试实施。这将是一些工作,只有当你想要的时候我才会这样做。
  • 我认为这确实是 stackoverflow.com/questions/15665247/… 的副本,我已经用我的解决方案 stackoverflow.com/questions/15665247/… 更新了这个问题。
  • 我想这就是我所追求的。干杯洋红色

标签: php wordpress shortcode


【解决方案1】:

在标题已经生成后,无法通过钩子修改文档标题,但您可以通过 javascript 将类似这样的内容附加到您的短代码输出中:

$generatedTitle = "Your generated title";
echo "<script>document.title = '" . $generatedTitle . "';</script>";

如果您担心搜索引擎会如何应对,Google 和其他知名搜索引擎会在抓取您的网站时运行 JS,并在搜索结果中显示更改后的标题。

【讨论】:

  • 这可能是一个解决方案。我将遇到与元标记相同的问题。似乎有点傻,它不能在预渲染中更改。我可以在我的钩子之前阻止生成标题吗?这会是一个解决方案吗?
  • 标题标签必须在 HTML 的 head 部分,所以不,你不能这样做。你最好为你的主题定义一个新的页面模板,为任何你想有一个动态标题标签的页面:https://developer.wordpress.org/themes/template-files-section/page-template-files/
  • 虽然 WordPress 的设计初衷不是用简码来做到这一点,但它可以用一些聪明的代码来完成。查看我的解决方案stackoverflow.com/questions/15665247/…
  • 不错的解决方案 - 但是该解决方案更适合这个问题,因为这个问题是针对文档标题的,另一个问题是关于页面标题的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 2014-03-23
  • 2018-04-04
  • 1970-01-01
  • 2015-05-08
  • 1970-01-01
相关资源
最近更新 更多