2014-09-19 6 views
0

좋아요, 플러그인을 만들었으니 이제는 앱에 단축 코드를 제공하고 싶습니다.
여기 wp-content/plugins/my-plugin/my-plugin.phpWordpress shortcode가 호출되지 않았습니다.

<?php 
/** 
* Plugin Name: Latest Issue 
* Author: Max Tsepkov 
* Author URI: http://www.yogi.pw 
*/ 

add_action('init', function() { 
    add_shortcode('my-plugin', function() { 
     // ... my code 

     return 'string'; 
    }); 
}); 

내 전용 파일입니다 내가 그 플러그인이 활성화 알고 init에 대한 콜백이 호출됩니다.
그러나 shortcode 함수가 호출되지 않습니다.
텍스트 [my-plugin]을 위젯에 추가하고 바꿀 수 없습니다.

내가 뭘 잘못 했니? 짧은 코드를 올바르게 등록하는 방법?

+0

어떤 PHP 버전이 있습니까? –

+0

코덱스에서 Shortcode API를 살펴 보았습니까? 또한 기본적으로 텍스트 위젯은 단축 코드를 지원하지 않습니다 –

답변

0

일부 테마는 위젯에서 단락 코드를 구문 분석하지 않습니다.
테마 필터에 명시 적으로 연결하여 위젯에서 단축 코드를 실행할 수 있습니다.
자세한 내용은 참조하십시오. https://wordpress.org/support/topic/how-to-make-shortcodes-work-in-a-widget

초기화 작업에 후크가 필요하지 않습니다. 이 코드는 작동합니다 :

<?php 
/** 
* Plugin Name: Latest Issue 
* Author: Max Tsepkov 
* Author URI: http://www.yogi.pw 
*/ 

// Allow theme to parse shortcodes in widgets 
add_filter('widget_text', 'do_shortcode'); 

add_shortcode('my-plugin', function() { 
    // ... my code 

    return 'string'; 
}); 
2

PHP가 5.3 이상인 것 같아 위젯에서 작동하도록 만들려면이 코드를 추가해야합니다.

add_filter('widget_text', 'do_shortcode'); 

코드를 테스트 한 결과 작동합니다.

+0

이 줄을 플러그인에 넣을 수 있습니까? 나는 주제를 지금 패치했다. –

+0

예, 그렇습니다. –

+0

@MaxTsepkov, 예. –