仅在特定页面上添加HTML代码段

时间:2021-10-28 作者:olewaldo

我想在特定页面(非全局页面)上添加一个HTML片段。以下是代码片段:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dio="http://docs.dionera.com/namespace/DioML">

谁能给我一个提示,怎么解决这个问题?目前我使用一个插件(插入页眉和页脚)。。。但是插件在每个页面上加载代码段,而不是在特定页面上加载。

非常感谢!

P、 在这种情况下,我没有太多经验——对不起。

2 个回复
SO网友:Catherine Consiglio

您可以像这样尝试使用wp\\u head hook,并检查它是否是要使用if语句加载的帖子或页面:

function wse_add_snippet_to_header() {
   //replace the array with your own post ids that you want this on
   //replace is_single with is_page if you want to check for pages instead of posts
   if (is_single(array(1234, 1254) {
      ?>
      <html xmlns="http://www.w3.org/1999/xhtml" xmlns:dio="http://docs.dionera.com/namespace/DioML">
      <?php
   }

}
add_action(\'wp_head\', \'wse_add_snippet_to_header\');

SO网友:Rup

我想您只是想添加xmlns:dio 属性,而不发出完整的第二个HTML标记。

您可以通过滥用language\\u attributes过滤器来做到这一点,大多数主题在其<;html>;标签:

<html <?php language_attributes(); ?> <?php twentytwentyone_the_html_classes(); ?>>
例如:。

function language_attributes_xmlns_dio( $output, $doctype ) {
    if ( is_single( array( 1234 ) ) ) {
        return $output . \' xmlns:dio="http://docs.dionera.com/namespace/DioML"\';
    }
    return $output;
}
add_action( \'language_attributes\', \'language_attributes_xmlns_dio\', 10, 2 );
虽然有些翻译插件可能会完全覆盖此值,因此在这种情况下可能会丢失名称空间。如果这是一个问题,你需要编辑你的主题的标题。php在<;中添加新函数调用;html>;标记,您可以在主题中定义该标记来有条件地发出xmlns属性。或者,在一个额外的名称空间中也没有坏处,所以您可以将其添加到标头中的标记中。php无条件。

此外,最好在页面中添加“needs\\u dio\\u namespace”post\\u meta值,并检查该值,而不是硬编码ID。