2016-07-26 15 views
1

私のサイトに適用するにはJS To Title Caseをダウンロードしました。それは新聞のようなテキスト文字列を大文字にします。 私は、PHPファイルの先頭にそれを呼んでいる:呼び出されたJavaScriptファイルからPHPエコーに関数を適用する

<script src="../../js/to-title-case.js"></script> 

そして私は、この文字列に.toTitleCaseを()を追加したいので、タイトルにJSを適用します。

<?php echo get_inspiry_custom_excerpt(get_the_title(), 7); ?> 

私は、改ページを、それを追加し、ロードしないところはどこでも、しかし

<h4 class="entry-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php echo get_inspiry_custom_excerpt(get_the_title(), 7); ?></a></h4> 

:それPHPはの一部です。

どうすればいいですか?

+0

href = "<?php the_permalink();?>" 引用符をエスケープする必要はありませんか? –

+2

あなたがそれをどのように追加したかを示しています... JSからPHP関数を呼び出すことはできませんし、PHPはJS関数を(直接)呼び出すことはできません。 –

+0

JS作成者は「JSを組み込み、変換する文字列に.toTitleCase()を追加するだけです」と言っています。だから私はこれを次のように追加した:<?php echo get_inspiry_custom_excerpt(get_the_title()、7).toTitleCase(); ?> –

答えて

0

コメントにMarc Bが意味するもの:これがnodejs + phpのハイブリッドでない場合は、間違ったやり方でミックスしています。

PHPはサーバ側で実行され、がHTMLページを作成します。このページおよび参照されたJavaScriptはブラウザのクライアント側をロードします。 "toTitleCase()"メソッドは単にPHPの実行環境の範囲にはなく、Authors "... the string ..."はPHP文字列ではなくJavaScript文字列を指します。

これらのページは、PHPエラー(「エラー報告が設定されていないと表示されない可能性があります)が原因でロードされません。

あなたの問題を解決する方法の1つは、クライアント側の読み込みで実行されるPHP経由でJSコードを生成することです。 another SO Entryから借り

<h4 class="entry-title"> 
    <a href="<?php the_permalink(); ?>" rel="bookmark" id="custom_excerpt"> 
    <?php echo get_inspiry_custom_excerpt(get_the_title(), 7); ?> 
    </a> 
</h4> 
<script> 
    var element = document.getElementById('custom_excerpt'); 
    var text = element.innerText || element.textContent || ''; 
    element.innerHTML = text.toTitleCase(); 
</script> 
  • JS:それははget_inspiry_custom_excerptとget_the_titleは、実際のP​​HPの関数ですと仮定し、そののようになります。

これは理想的とはほど遠いかもしれませんが、その方法を示すべきです。

+0

マカありがとう!私はPHPとJSを学んでいますが、私はまだ混乱します。 –

関連する問題