WordPress中php獲取的文章標(biāo)題如何傳遞給JavaScript?
在WordPress主題開發(fā)中,經(jīng)常需要將后端PHP獲取的數(shù)據(jù)傳遞到前端JavaScript中使用,例如將文章標(biāo)題作為參數(shù)發(fā)送到外部API。本文介紹如何高效地將WordPress文章標(biāo)題從PHP傳遞到JavaScript。
WordPress提供了get_the_title()函數(shù)獲取文章標(biāo)題,前端通常使用$.ajax()或fetch()進(jìn)行數(shù)據(jù)請(qǐng)求。為了實(shí)現(xiàn)PHP到JavaScript的數(shù)據(jù)傳遞,我們可以利用wp_localize_script()函數(shù)。
以下代碼演示了如何實(shí)現(xiàn):
$titles = []; $args = [ 'post_type' => 'post', 'posts_per_page' => -1, // 獲取所有文章 ]; $query = new WP_Query($args); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); $titles[] = get_the_title(); } wp_reset_postdata(); } // 將標(biāo)題數(shù)組傳遞給JavaScript wp_enqueue_script('my-script', get_template_directory_uri() . '/JS/my-script.js', ['jquery'], '1.0', true); wp_localize_script('my-script', 'myAjax', ['titles' => $titles]);
這段代碼首先使用WP_Query獲取所有文章標(biāo)題,然后使用wp_enqueue_script()加載自定義JavaScript文件my-script.js,并通過wp_localize_script()函數(shù)將$titles數(shù)組以myAjax.titles的形式傳遞給JavaScript。
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
在my-script.js文件中,您可以通過myAjax.titles訪問這些文章標(biāo)題:
jQuery(document).ready(function($) { console.log(myAjax.titles); // 輸出文章標(biāo)題數(shù)組 // 使用myAjax.titles發(fā)送請(qǐng)求等操作 });
這種方法不僅限于傳遞文章標(biāo)題,還可以傳遞其他任何PHP變量到JavaScript,方便靈活地進(jìn)行前后端數(shù)據(jù)交互。 記住將/js/my-script.js替換成你實(shí)際的JavaScript文件路徑。