正直言って、私はwordpress envの教祖ではありません。私はある種の問題を解決しなければならない。次のように私のテンプレートコードは次のとおりです。Wordpress - カスタム投稿フィールドのパラメータを使用して動的onclickリダイレクトメソッドを作成する
<div class="section-one">
<div class="section-one-container">
<h1><?php the_title(); ?></h1>
<?php the_excerpt(); ?>
<div class="link">
<a href="" target="_blank">Go to the presentation</a>
</div>
</div>
<?php if(has_post_thumbnail())
echo '<div class="image">';
the_post_thumbnail('full');
echo '</div>';
?>
</div>
クリックされた「プレゼンテーションに行く」一度私は新しいブラウザタブ内プレゼンテーションページにユーザーをリダイレクトします。問題は、Wordpress Custom Fieldsにあるいくつかのパラメータを渡さなければならず、各Wordpressの投稿ごとに異なることです。
私の考えは、HTML onclickメソッドを使用するときに起動されるJS関数を作成することでした。
function gotoUrl(path, params, method) {
//Null check
method = method || "post"; // Set method to post by default if not specified.
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
//Fill the hidden form
if (typeof params === 'string') {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", 'data');
hiddenField.setAttribute("value", params);
form.appendChild(hiddenField);
}
else {
for (var key in params) {
if (params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
if(typeof params[key] === 'object'){
hiddenField.setAttribute("value", JSON.stringify(params[key]));
}
else{
hiddenField.setAttribute("value", params[key]);
}
form.appendChild(hiddenField);
}
}
}
document.body.appendChild(form);
form.submit();
}
質問は、カスタムフィールド値をgoToUrl関数に渡す適切な方法は何ですか?どのようにWordPressのフィールド値でJS paramsオブジェクトを作成するには?あなたが直面しているように見える主な問題は、JSファイルの上でPHPのデータを配っている方法例えばPHPコードとJSコードを混在させる:
const params = {
color: <?php the_field('color'); ?>,
label: <?php the_field('label'); ?>,
mode: <?php the_field('mode'); ?>
...
}