如何在 onclick href 中调用简码(在 Html 小部件中)?

Posted

技术标签:

【中文标题】如何在 onclick href 中调用简码(在 Html 小部件中)?【英文标题】:How to call shortcode in onclick href (in Html widget)? 【发布时间】: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');

谢谢。

【问题讨论】:

【参考方案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

以上是关于如何在 onclick href 中调用简码(在 Html 小部件中)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在wordpress中递归解码简码

button按钮如何在onclick中调用java后台函数

如何调用onclick以获得更多href,而不仅仅是触发最后一个-嵌入式javascript模板

111 个简码调用另一个简码?

在 Wordpress 的函数中使用简码 [重复]

如何在 WordPress 简码中使用 AJAX?