【问题标题】:Add additional empty attribute to existing HTML element向现有 HTML 元素添加额外的空属性
【发布时间】:2021-09-16 19:09:26
【问题描述】:

我尝试使用 Matomo Tagmanager 将内容跟踪包含到网站中。根据他们的documentation,这应该是

<a href="/random" class="tfs-highlight-button" 
 data-track-content 
 data-content-name="Random click" 
 data-content-piece="Random newsletter">
Click for random
</a>

我想通过我的functions.php使用以下代码添加它

add_filter( 'nav_menu_link_attributes', function ( $atts, $item, $args ) {
if ( 'tfs-highlight-button' === $item->classes[0] ) {
    $atts['data-track-content'] ;
    $atts['data-content-name']="Random click";
    $atts['data-content-piece']="Random newsletter";
 }
 return $atts; 
}, 10, 3 );

不幸的是,属性 data-track-content 没有添加到 HTML 元素中。如何向元素添加“空”数据属性?我已经尝试过 $atts['data-track-content']='' 和 $atts['data-track-content']=NULL 但这不起作用。

【问题讨论】:

    标签: php wordpress analytics matomo event-tracking


    【解决方案1】:

    Wordpress 删除空/虚假属性。我会这样做:

    add_filter('nav_menu_link_attributes', function ($atts, $item, $args) {
      if (in_array('tfs-highlight-button', $item->classes)) {
        $atts['data-track-content'] = '1';
        $atts['data-content-name'] = 'Random click';
        $atts['data-content-piece'] = 'Random newsletter';
      }
    
      return $atts;
    }, 10, 3);
    
    add_filter('walker_nav_menu_start_el', function($item_output, $item) {
      if (in_array('tfs-highlight-button', $item->classes)) {
        $item_output = str_replace('data-track-content="1"', 'data-track-content', $item_output);
      }
    
      return $item_output;
    }, 10, 2);
    

    【讨论】:

    • 谢谢。我试过了,但这使得输出&lt;a href="/random" class="tfs-highlight-button" data-track-content="" data-content-name="Random click" data-content-piece="Random newsletter"&gt; Click for random &lt;/a&gt;
    猜你喜欢
    • 2023-03-06
    • 2011-02-14
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多