【问题标题】:How to call shortcode in onclick href (in Html widget)?如何在 onclick href 中调用简码(在 Html 小部件中)?
【发布时间】:2021-07-30 20:59:53
【问题描述】:

点击提交按钮时,我需要调用简码 [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');

谢谢。

【问题讨论】:

    标签: wordpress onclick href shortcode


    【解决方案1】:

    请试试这个进行测试

    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>
    

    【讨论】:

    • 感谢您的 cmets。我需要调用简码 [profile-url] 而不是特定的 url。你有什么想法吗?
    • @Fioi 我的意思是 [onclick="javascript:location.href=uol.com.br/] 与 [onclick="location.href=uol.com.br/"].因此,您只需使用以下代码即可:onclick="javascript:location.href=''
    • 哦,对不起,我试过代码,但是当我点击它时按钮没有反应......
    • @Fioi 1)如果对您有用,请尝试答案中的新更新代码。 2) 你不应该使用 标签来包装那些 ul, li 元素。不推荐。
    • 我更新了代码,菜单代码就是以此为基础的 => codepen.io/kkrueger/pen/qfoLa
    猜你喜欢
    • 1970-01-01
    • 2023-02-23
    • 2013-08-09
    • 2012-04-28
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多