2017-01-03 9 views
0

私はWPで使用するための 'Contact Form'ショートコードを作成しようとしています。 WordPressサイトにロードすることを離れて、すべて正常に動作します。WordpressショートコードIssus v2

enter image description here

私はそれだけでテキストを出力しますページの[CONTACT_FORM]ページに、またはポストとプレビューをコピーします。私はコードを正しくしました。

<?php 

class Settings { 
     // Conact Form shortcode 

    public function allb_contact_form($atts, $content = null ) { 
      //[contact_form] 
      //get the attribute_escape 
      $atts = shortcode_atts(
      array(), 
      $atts, 
      'contact_form' 
     ); 
      //return HTML 
      ob_start(); 
      include '/lib/inc/thmeplates/contact-form.php'; 
      return ob_get_clean(); 

     add_shortcode('contact_form', 'allb_contact_form'); 
    } 

} new Settings(); 

答えて

1

add_shortcode()あなたのadd_shortcode()関数呼び出しは、そのクラスを参照する必要があります。したがって、add_shortcode()がクラス外から呼び出された場合は、実行する必要があります。

add_shortcode('baztag', array($this , 'baztag_func')); 

また、あなたが同じでショートを追加することはできません:クラス内から呼び出された場合の例では、あなたがそうのように自分自身内のクラスを参照してくださいhttps://codex.wordpress.org/Function_Reference/add_shortcode

からのものであることを

class MyPlugin {  
    public static function baztag_func($atts, $content = "") {   
     return "content = $content";  
    } 
} 
add_shortcode('baztag', array('MyPlugin', 'baztag_func')); 

ショートコードを出力する関数です。したがって、以下を試してみてください:

<?php 

class Settings { 
     // Conact Form shortcode 

    public function __construct(){ 
     add_shortcode('contact_form', array($this , 'allb_contact_form')); 
    } 

    public function allb_contact_form($atts, $content = null ) { 
      //[contact_form] 
      //get the attribute_escape 
      $atts = shortcode_atts(
      array(), 
      $atts, 
      'contact_form' 
     ); 
      //return HTML 
      ob_start(); 
      include '/lib/inc/thmeplates/contact-form.php'; 
      return ob_get_clean();    
    } 

} new Settings(); 
+0

私はcodexを読み取っても、まだフォームを印刷しません。 –

+0

add_shortcodeをクラスの外に追加すると、エラーメッセージが表示されます。注意:do_shortcode_tagが正しく呼び出されませんでした。有効なコールバックなしでショートコードを解析しようとしています:contact_form詳細については、WordPressのデバッグを参照してください。 (このメッセージはバージョン4.3.0で追加されました。)/Users/brandonpowell/sites/valet/wordpress-development/web/wp/wp-includes/functions.php on line 4091 –

+0

@BrandonPowell詳細を追加しました。あなたの問題を解決してください –

関連する問題