让我简要回顾一下标题中搜索的问题。在我们的网站上,通过Google Chrome/Safari for mobile或Google Chrome incognito for desktop,触摸标题中的搜索图标或菜单图标,会出现高亮动画,但搜索框不会填充。相反,它会在URL的末尾添加一个标签,并将您跳到顶部。要解决此问题,必须刷新页面。此外,一旦您提交搜索并进入搜索结果页面,然后单击菜单或搜索图标,它会添加一个标签,清除搜索结果,并将您跳到顶部。刷新页面将解决此问题,但您的搜索结果将不存在。我无法通过Mozilla Firefox或Webroot Secure Anywhere浏览器复制此问题,无论是移动浏览器还是桌面浏览器。话虽如此,我已经将其缩小到两个特定的浏览器。我还想提到的是,搜索结果页面本身没有问题。搜索框和结果正常工作。
此外,我的目标是用Google自定义搜索取代标题中的主题搜索,我相信我可以用searchform实现这一点。php文件?我坚信这与searchform有关。php和/或搜索。php文件(下面列出了两个原始代码)。我对如何更改searchform做了一些研究。php文件添加谷歌CSE,我能找到的都是过时的文章。
我们使用WordPress,因此我在这里,并使用默认主题将布局设置为压缩的Google CSE设置为压缩,并添加了CSS来设置搜索框和结果的样式。我做了几次测试,只有一个结果占了上风。此外,在进行所有测试时,我要注意的一件事是,我通过浏览器和网站的超级缓存清除了缓存。改变主题奏效了。谷歌Chrome手机版和隐姓埋名桌面版都没有问题。我们的主题BuddyBoss有一个搜索。php文件和searchform。php文件。我切换到的主题只有一个searchform。php文件(不确定这是否重要)。我删除了searchform中的PHP。php文件并添加了以下代码(使用我的子主题):
<script>
(function() {
var cx = \'CSE ID\';
var gcse = document.createElement(\'script\');
gcse.type = \'text/javascript\';
gcse.async = true;
gcse.src = (document.location.protocol == \'https:\' ? \'https:\' : \'http:\') +
\'//cse.google.com/cse.js?cx=\' + cx;
var s = document.getElementsByTagName(\'script\')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<gcse:searchbox-only resultsUrl="https://www.example.com/"></gcse:searchbox-only>
我就这个问题联系了Google,他们告诉我我使用了一个不推荐使用的代码,并给了我一个链接,提供了有关元素控制API的详细信息
https://developers.google.com/custom-search/docs/element. 那是当我发现上面的代码在我的searchform中时。php文件是以前的版本。然后,我按照谷歌的指示:
<!-- Put the following javascript before the closing </head> tag
and replace 123:456 with your own Custom Search engine ID. -->
<script async src="https://cse.google.com/cse.js?cx=123:456"></script>
<!-- Place this tag where you want both of the search box and the search results to render -->
<div class="gcse-search"></div>
然后我试着保留searchform。php代码与主题开发人员的代码相同:
<?php
/**
* The template for displaying search form
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/#search-result
*
* @package BuddyBoss_Theme
*/
?>
<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( \'/\' ) ); ?>">
<label>
<span class="screen-reader-text"><?php esc_html_e( \'Search for:\', \'buddyboss-theme\' ); ?></span>
<input type="search" class="search-field-top" placeholder="<?php echo esc_attr( apply_filters( \'search_placeholder\', __( \'Search\', \'buddyboss-theme\' ) ) ); ?>" value="<?php echo get_search_query(); ?>" name="s" />
</label>
<input type="submit" class="search-submit" value="<?php echo esc_attr_e( \'Search\', \'buddyboss-theme\' ); ?>" />
</form>
然后,我创建了自己的搜索。php,并用Google CSE的“获取代码”代码填写:
<script async src="https://cse.google.com/cse.js?cx=My ID"></script>
<div class="gcse-search"></div>
这是我们的主题搜索。php文件(如果有人发现它有用):
/**
* The template for displaying search results pages
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/#search-result
*
* @package BuddyBoss_Theme
*/
get_header();
$blog_type = \'standard\'; // standard, grid, masonry.
$class = \'bb-standard\';
?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<?php if ( have_posts() ) : ?>
<header class="page-header">
<h1 class="page-title">
<?php
/* translators: %s: search query. */
printf( esc_html__( "Showing results for \'%s\'", \'buddyboss-theme\' ), \'<span>\' . get_search_query() . \'</span>\' );
?>
</h1>
</header><!-- .page-header -->
<div class="post-grid <?php echo esc_attr( $class ); ?>">
<?php
/* Start the Loop */
while ( have_posts() ) :
the_post();
/*
* Include the Post-Format-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
get_template_part( \'template-parts/content\', apply_filters( \'bb_blog_content\', get_post_format() ) );
endwhile;
?>
</div>
<?php
buddyboss_pagination();
else :
get_template_part( \'template-parts/content\', \'none\' );
?>
<?php endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(\'search\'); ?>
<?php
get_footer();
在搜索中实现该代码。php文件无法工作。在这一点上,我只是在尝试不同的东西并进行测试。我现在正试着熟悉WordPress的get\\u search\\u表单(array$args=array()),以便了解如何在我们的webiste上实现我自己的Google CSE
https://developer.wordpress.org/reference/functions/get_search_form/.
我在编码方面是新手,如果有人能给我指出正确的方向,我希望得到任何关于我能做什么的反馈!我很感激你给我的时间以及我得到的任何帮助。希望这将是一件容易修复的事情。
这是超长的,但我尽量描述。我希望我很清楚,很容易理解,并且回答了你所有的问题。非常感谢。
感谢和问候,
乔希
我需要帮助的博客是www.tips4gamers.com. 这可能是一些有用的信息,哈哈。