我正在尝试调用functions.php
文件中的变量,但由于某种原因它无效。根据我的阅读,在Wordpress中调用搜索词的默认方法是使用以下方法完成的。它在search.php
中正常工作,但在functions.php
<?php $search_query = get_search_query(); ?>
<div align="center">
<?php echo $search_query ?>
</div>
我在functions.php
文件中使用数组中的相同内容,但它没有被调用。
这不起作用:
<?php
function load_posts_by_ajax_callback_search() {
check_ajax_referer('load_more_posts_search', 'security');
$paged_search = $_POST['page'];
$args_search = array(
'posts_per_page' => '20',
's' => $search_query,
'paged' => $paged_search,
);
$my_posts_search = new WP_Query( $args_search );
if ( $my_posts_search->have_posts() ) :
?>
<?php while ( $my_posts_search->have_posts() ) : $my_posts_search->the_post() ?>
但是,当我硬编码搜索词时,班加罗尔&#34;在代码中,它正在工作
<?php
function load_posts_by_ajax_callback_search() {
check_ajax_referer('load_more_posts_search', 'security');
$paged_search = $_POST['page'];
$args_search = array(
'posts_per_page' => '20',
's' => 'Bangalore',
'paged' => $paged_search,
);
$my_posts_search = new WP_Query( $args_search );
if ( $my_posts_search->have_posts() ) :
?>
<?php while ( $my_posts_search->have_posts() ) : $my_posts_search->the_post() ?>
如何让它适用于所有关键字?
这是调用此帖子的脚本 此脚本在search.php中运行以调用更多帖子
<script type="text/javascript">
var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
var page = 2;
jQuery(function($) {
$('body').on('click', '.loadmore', function() {
var data = {
'action': 'load_posts_by_ajax_search',
'page': page,
'security': '<?php echo wp_create_nonce("load_more_posts_search"); ?>'
};
$.post(ajaxurl, data, function(response) {
$('.my-posts').append(response);
page++;
});
});
});
</script>
搜索词来自此搜索
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>" target="_self">
<div>
<input style="text-align:center;width:100%;margin:0 0 12px; 0;border-color:#4a235a;color:#000000;" placeholder='Eg:Location,Skill,Company' class="text" type="text" value="" name="s" id="s" />
</div>
<div>
<input type="submit" style="text-align:center;margin:0 0 0 0;width:100%;border:1.5px solid;border-color:grey;background-color:#4a235a;color:#f4511e;" class="submit button" name="submit" value="<?php _e('Search');?>" />
</div>
</form>
如果您需要完整的代码,请告诉我来自search.php和functions.php文件。感谢您的任何意见和帮助。
答案 0 :(得分:1)
<强>过程:强>
使用jQuery访问搜索字词
$('body').on('click', '.loadmore', function() {
var data = {
'action': 'load_posts_by_ajax_search',
'page': page,
'searchTerm': $('#s').val(), //Get the search term.
'security': '<?php echo wp_create_nonce("load_more_posts_search"); ?>'
}
更新您的PHP代码:
$paged_search = $_POST['page'];
$search_term = esc_attr($_POST['searchTerm']);
$args_search = array(
'posts_per_page' => '20',
's' => $search_term,
'paged' => $paged_search,
);
答案 1 :(得分:1)
您需要将变量传递给函数才能在该函数中使用。
function load_posts_by_ajax_callback_search($searchInput) {
check_ajax_referer('load_more_posts_search', 'security');
$paged_search = $_POST['page'];
$args_search = array(
'posts_per_page' => '20',
's' => $searchInput,
'paged' => $paged_search,
当你调用该函数时,你输入了$ search_query变量。
load_posts_by_ajax_search($search_query)