2016-07-27 16 views
0

私はis_ios()関数を使用しようとしていますが、動作しないようです。 is_ios()を使ってPHPコードを記述したページがコンパイルされると、それは空白になります。Wordpress:is_ios()関数が動作しない

これはWordpressドキュメントのフッター部分です。私は<?php if (wp_is_mobile()) : ?><?php if (is_ios()) : ?>を変更した場合

<?php if (is_ios()) : ?> 
    <a href="instagram://user?username=USERNAME"> 
<?php else : ?> 
    <a href="http://www.instagram.com/USERNAME"> 
<?php endif; ?> 
<i class="fa fa-instagram fa-2x" aria-hidden="true"></i></a> 

コードが細かい実行されます。

何かを含める必要があるかどうかわかりません。それについての文書(https://developer.wordpress.org/reference/classes/wp_customize_manager/is_ios/)を見た後、私は関数が正しい場所に存在していたかどうかを調べました。私は他に何を試していいのかわかりません。どんな洞察力や助けでも感謝します。

完全なコードは

<?php 
/** 
* The template for displaying the footer 
* 
* Contains the closing of the #content div and all content after 
* 
* @package WordPress 
* @subpackage Twenty_Sixteen 
* @since Twenty Sixteen 1.0 
*/ 
?> 

<footer class="footer text-center"> 
    <div class="container"> 
     <p><strong> 
     <i class="fa fa-copyright" aria-hidden="true"></i> USERNAME 
     </strong> <a href="#"><i class="fa fa-facebook-square fa-2x" aria-hidden="true"></i></a> 
     <a href="https://twitter.com/USERNAME"><i class="fa fa-twitter-square fa-2x" aria-hidden="true"></i></a> 
     <?php if (is_ios()) : ?> 
      <a href="instagram://user?username=USERNAME"> 
     <?php else : ?> 
      <a href="http://www.instagram.com/USERNAME"> 
     <?php endif; ?> 
     <i class="fa fa-instagram fa-2x" aria-hidden="true"></i></a> 
     <a href="#"><i class="fa fa-envelope fa-2x" aria-hidden="true"></i></a> 
     </p> 

    </div> 
    </footer> 
    <?php wp_footer(); ?> 
    </body> 
</html> 
+1

エラーの詳細についてはログを確認する(またはエラー報告をオンにします)。あなたがリンクしたドキュメントからは、 'WP_Customize_Manager :: is_ios()'クラスの一部であるように見えるので、正しく呼び出されていません。 – ceejayoz

+0

@ceejayozはエラー報告(クールなもの)をオンにし、スタックトレースをチェックアウトしました。関数内で 'is_ios()'を 'WP_Customize_Manager :: is_ios()'に変更しようとしましたが、 'Fatal error:Uncaught Error:Class 'という新しいエラーが発生しました。 WP_Customize_Managerが見つかりませんでした。クラスをどうにかインポートする必要があると思いますか? –

答えて

0

is_iosWP_Customize_Managerクラスのメソッドです。だから、最初のインスタンスを作成する必要があります。

<?php 

include_once('wp-includes/class-wp-customize-manager.php'); 

$customizeManager = new WP_Customize_Manager(); 

if ($customizeManager->is_ios()) : // etc. ?> 

そうでなければ、あなただけの全体のコードをコピーすることができます

<?php if (wp_is_mobile() && preg_match('/iPad|iPod|iPhone/', $_SERVER['HTTP_USER_AGENT'])) : // etc. ?> 
+0

素晴らしいです - ありがとうございます。 '$ customizeManager-> is_ios()は、PHPでクラスの中でメソッドを使う方法です。 –

+0

実際には、1つのメソッドを使用するためだけに、このクラスのインスタンスを作成するのはかなり残念です。このクラスは、管理者側のカスタマイザに実際に使用されることを意図しています。コード全体をコピーすることも安全です...私はこのようにします。 –

関連する問題