首页 > 解决方案 > 如何在 onclick href 中调用简码(在 Html 小部件中)?

问题描述

单击提交按钮时,我需要调用简码 [profile-url]。
我尝试了以下代码,但它们都没有调用 url。

onclick="location.href='<?php echo do_shortcode('[profile-url]'); ?>';"
onclick="javascript:location.href='<?php echo do_shortcode('[profile-url]'); ?>';"
onclick="location.href=<?php echo  do_shortcode('#profile-url')?>;"
onclick="location.href='[profile-url]';"
onclick="location.href=<?php profile-url(); ?>;"

我使用导航菜单插件测试了这个简码 [profile-url],它运行良好。
它只是不适用于下面的菜单代码。
你能告诉我如何解决这个问题吗?

Elementor 中使用 Html 小部件的菜单代码:

<li>
    <a id="fourth-menu" class="menu">
      <h2 class="menu-title menu-title_4th">Myhome</h2>
      <ul id="menu-dropdown-four" class="menu-dropdown">
        <li onclick="location.href=????????????;">Submit</li>
        <li>Progress</li>
      </ul>
    </a>
</li>

Function.php 中的 [profile-url](运行良好):
    add_shortcode( 'profile-url' , 'infosubmission_url' );
    function infosubmission_url(){
      $user = wp_get_current_user();
     
      if( !$user->ID ){
        //user not logged in, redirect to login package
        return ( 'www.myweb.com/project-login-required/' );
      }
     
      //User is logged in, return dynamic URL
      $username = $user->user_login;
      return ( 'www.myweb.com/mypage-infosubmit/' );
    }

//it allows you to use short code in menue link
add_filter( 'wp_nav_menu_items', 'do_shortcode'); 
add_filter( 'widget_text', 'shortcode_unautop');
add_filter( 'widget_text', 'do_shortcode');
add_filter( 'widget_html', 'do_shortcode');

谢谢你。

标签: wordpressonclickhrefshortcode

解决方案


请试试这个进行测试

onclick="javascript:location.href=http://www.uol.com.br/"

如果它工作正常,请调整 PHP 代码。

更新:

    <li>
        <a id="fourth-menu" class="menu">
           <h2 class="menu-title menu-title_4th">Myhome</h2>
           <ul id="menu-dropdown-four" class="menu-dropdown">
           <?php
            $output = '<li onclick="' . do_shortcode('profile-url') .'">Submit</li>';
            echo $ouput;
            ?>
        <li>Progress</li>
      </ul>
    </a>
</li>

推荐阅读