php Wordpress导航栏中的自定义短代码

laawzig2  于 2023-02-03  发布在  PHP
关注(0)|答案(5)|浏览(149)

我只是想添加一个简码按钮到我的wordpress主题菜单栏处理bootstrap modal view功能。
我尝试了'Shortcodes in Menus'插件,但它不工作。我找不到替代插件的简码在菜单中,所以我安装了'Bootstrap 3 Shortcodes'插件,它创建按钮和模态视图内容,因为我想要的。但我不能添加简码到我的菜单栏。
我确实很努力地想找到一些关于我的问题的答案,但不幸的是没有找到。
这是我的模态短代码生成的引导3短代码插件;

[modal text="Download Now" title="Veteriner Hekimlere Ulaşmanın En Kolay Yolu" xclass="btn btn-primary btn-lg"]
<p style="text-align: center;"><img src="http://web-test.vetmapp.com/wp-content/uploads/sites/2/2016/08/vetmapp-logo-withtext.png" alt="Logo" width="200" height="300" /></p>

<h4 style="text-align: center;">VetMapp'i cihazınıza göre aşağıdaki platformlardan cep telefonunuza ücretsiz olarak indirebilir ve hemen kullanmaya başlayabilirsiniz.</h4>
<p style="text-align: center;">
  <a href="https://itunes.apple.com/tr/app/vetmapp-acil-veteriner-klinikleri/id969463902?mt=8" target="_blank"><img src="http://web-test.vetmapp.com/wp-content/uploads/sites/2/2016/09/180x40xapple-store.png.pagespeed.ic.z0I7tHw8h6.png" alt="App Store'dan indir!" width="135" height="40" /></a>
  <a href="https://play.google.com/store/apps/details?id=com.esmobileinc.vetmapp&amp;hl=tr"
  target="_blank"><img src="http://web-test.vetmapp.com/wp-content/uploads/sites/2/2016/09/180x40xgoogle_play.png.pagespeed.ic.31v8JAmtbI.png" alt="Google Play'den indir!" width="135" height="40" /></a>
  <a href="https://www.microsoft.com/tr-tr/store/p/vetmapp/9nblggh4s3qm"
  target="_blank"><img src="http://web-test.vetmapp.com/wp-content/uploads/sites/2/2016/09/180x40xwindows_phone.png.pagespeed.ic.xvoiaCiuDP.png" alt="Windows Store'dan indir!" width="135" height="40" /></a>
</p>
[modal-footer] [button type="primary" style="border: solid 1px #18bda3; background-color: #fff; color: #18bda3;" link="#" data="dismiss,modal"]Kapat[/button] [/modal-footer] [/modal]

我只想在WP导航栏中使用[modal text="Download Now" title="Veteriner Hekimlere Ulaşmanın En Kolay Yolu" xclass="btn btn-primary btn-lg"]
我该怎么做呢?我可以在functions.php中为此写一个函数,或者尝试其他方法?
"谢谢你..."

9avjhtql

9avjhtql1#

如果你分享你的短代码,生成标记或者你想用你的短代码 Package 什么标记,这对其他人来说是最好的理解。
无论如何,试试这个,它会工作顺利(测试)

add_filter( 'wp_nav_menu_items', 'wpse3967385_custom_menu_link', 10, 2 );

function wpse3967385_custom_menu_link( $items, $args ) {
   if ($args->theme_location == 'primary_nav') {
      $items .= '<li class="your-custom-item">' . do_shortcode( '[modal text="Download Now" title="Veteriner Hekimlere Ulaşmanın En Kolay Yolu" xclass="btn btn-primary btn-lg"]' ) . '</li>';
   }
   return $items;
}

请随意更改“菜单”主题位置。
希望能说得通。

ymzxtsji

ymzxtsji2#

function my_function_name($item_output) {
    if( YOUR LOGIC FOR WHEN YOU WANT IT )
       $item_output .= do_shortcode('[modal text="Download Now" title="Veteriner Hekimlere Ulaşmanın En Kolay Yolu" xclass="btn btn-primary btn-lg"]');

    return $item_output;
}
add_filter('wp_nav_menu', 'my_function_name', 10, 1);
ryevplcw

ryevplcw3#

我不知道是什么结果提供这个短代码。在我的想法,你可以看到一个按钮,当你点击,然后显示模型窗口,你想实现导航菜单上的按钮。我没有测试这些代码,但你可以尝试,如果这对你有帮助。
首先创建一个新的php文件,并把所有的短代码内容放在那里。

//my-modal.php
[modal text="Download Now" title="Veteriner Hekimlere Ulaşmanın En Kolay Yolu" xclass="btn btn-primary btn-lg"]
<p style="text-align: center;"><img src="http://web-test.vetmapp.com/wp-content/uploads/sites/2/2016/08/vetmapp-logo-withtext.png" alt="Logo" width="200" height="300" /></p>

<h4 style="text-align: center;">VetMapp'i cihazınıza göre aşağıdaki platformlardan cep telefonunuza ücretsiz olarak indirebilir ve hemen kullanmaya başlayabilirsiniz.</h4>
<p style="text-align: center;">
  <a href="https://itunes.apple.com/tr/app/vetmapp-acil-veteriner-klinikleri/id969463902?mt=8" target="_blank"><img src="http://web-test.vetmapp.com/wp-content/uploads/sites/2/2016/09/180x40xapple-store.png.pagespeed.ic.z0I7tHw8h6.png" alt="App Store'dan indir!" width="135" height="40" /></a>
  <a href="https://play.google.com/store/apps/details?id=com.esmobileinc.vetmapp&amp;hl=tr"
  target="_blank"><img src="http://web-test.vetmapp.com/wp-content/uploads/sites/2/2016/09/180x40xgoogle_play.png.pagespeed.ic.31v8JAmtbI.png" alt="Google Play'den indir!" width="135" height="40" /></a>
  <a href="https://www.microsoft.com/tr-tr/store/p/vetmapp/9nblggh4s3qm"
  target="_blank"><img src="http://web-test.vetmapp.com/wp-content/uploads/sites/2/2016/09/180x40xwindows_phone.png.pagespeed.ic.xvoiaCiuDP.png" alt="Windows Store'dan indir!" width="135" height="40" /></a>
</p>
[modal-footer] [button type="primary" style="border: solid 1px #18bda3; background-color: #fff; color: #18bda3;" link="#" data="dismiss,modal"]Kapat[/button] [/modal-footer] [/modal]

在主题function.php中创建一个新函数并包含此文件。

function modal_shortcode_content(){
  ob_start();
  include "my-modal.php";
  $shortcode_content = ob_get_content();
  ob_clean();
  return do_shortcode($shortcode_content);
}

在导航内容中添加简码输出。我不确定我认为简码只给按钮,其他部分是隐藏和可见的,当你点击按钮。

function navigation_add_button_menu($item_output) {
 // apply any logic here...
       $item_output .= modal_shortcode_content();

    return $item_output;
}

add_filter('wp_nav_menu', 'navigation_add_button_menu', 10, 1);
uxhixvfz

uxhixvfz4#

你的代码是相当混乱,我不能给予你一个工作脚本,因为是在另一种语言,我不明白,我不想弄乱的东西。
无论如何,试试这个。这是一个简单的逻辑得到你想要的,通过短码。我用它我的网站。

function html_code() {
    if( //Trigger Event Goes Here ) {
       // Use echo's to output the HTML of the window
    }
}

function modal_window() {
    html_code();

    return ob_get_clean();
}

add_shortcode( 'modal_window' );
afdcj2ne

afdcj2ne5#

这是针对类总是相同的特定用途吗?如果你只想在一个地方使用它,你可以这样做:

function print_menu_shortcode($atts, $content = null) {
    extract(shortcode_atts(array( 'name' => null, 'class' => null ), $atts));
    return wp_nav_menu( array( 'menu' => $name, 'menu_class' => 'myclass', 'echo' => false ) );
    }

add_shortcode('menu', 'print_menu_shortcode');

然后用你需要的类修改'menu_class' =〉'myclass'部分。这样可以避免使用类。同样,不要在类前面使用.“”。
短代码用法:

[menu name="menu_name"]

相关问题