Я кодирую очень простой плагин, чтобы добавить слайд-шоу к моей теме. Я также хочу зарегистрировать короткий код, чтобы вызывать их с моих страниц. Пока у меня это:
class Slideshow { public function __construct() { // Register the project custom post type add_action( 'init', array( $this, 'ss_register_slideshow_type' ), 0 ); add_action( 'init', array( $this, 'ss_register_shortcodes' ), 0 ); } function ss_register_slideshow_type() {} function ss_register_shortcodes() { add_shortcode( 'embed-slideshow', 'ss_shortcode_embed_slideshow' ); } function ss_shortcode_embed_slideshow( $atts ) { return 'Foo'; } } // init $slideshow_instance = new Slideshow();
Я сокращаю регистрацию типа пользовательских сообщений для краткости. Тип настраиваемого сообщения регистрируется, но когда я пытаюсь вызвать короткий код на странице с
[embed-slideshow]
Ничего не произошло. Я имею в виду, что я написал [embed-slideshow]. Я зарегистрировал еще один короткий код из моих функций темы, и он работает хорошо.
Я пропустил что-то действительно очевидное? Есть идеи?
Благодаря!
Действие вашего короткого кода неправильное / неполное:
function ss_register_shortcodes() { add_shortcode( 'embed-slideshow', array( $this, 'ss_shortcode_embed_slideshow' ) ); }
Поскольку вы выполняете ООП, вы должны использовать метод класса в контексте объекта (или статическом).