插件短代码中的WordPress :: add_action

时间:2018-05-22 11:32:28

标签: wordpress

我正在尝试进行add_action调用,但仅限于包含特定插件短代码的页面。

目前我在所有页面上获取它,而不仅仅是在我需要的页面上。

/jenkins

3 个答案:

答案 0 :(得分:1)

尝试以下代码

class SomePlugin {
  public function __construct() {
    add_action('wp_head', array($this, 'addMetatags'));
  }

  public function addMetatags() {
    if ( is_page( 'about-me' ) ) { 
        echo '<meta property="og:type" content="article">';
    }
  }
}
$SomePlugin = new SomePlugin();

答案 1 :(得分:0)

只需使用shortcode_exists函数。

   <?php
add_action('init','prefix_check_short_code');

 function prefix_check_short_code() {
  if ( shortcode_exists( 'your_short_code' ) ) { 
         $SomePlugin = new SomePlugin();
    }
 } 
  ?> 

将此代码用于主题函数或主插件文件。

wordpress网站上的功能URL是: https://codex.wordpress.org/Function_Reference/shortcode_exists

答案 2 :(得分:0)

经过一番挖掘后,我找到了最好的(通用)解决方案:

class somePluginClass {    

    public function __construct()
    {
       add_action('wp_head', array(&$this, 'renderTags'));
    }

    public function renderTags() {
       global $post;
       if (has_shortcode($post->post_content, self::SHORT_CODE)) {
          echo '<meta property="[some-property]" content="[content]" />';
       }
    }

}