如何向Wordpress搜索添加自定义值

时间:2017-12-29 15:16:07

标签: php mysql wordpress

我为wordpress创建了一个前端编辑器(使用ckeditor)。现在它编辑模板中的字段(如标题和描述部分的一部分)并将其保存到自定义表

这是我的表

id |模板|选择器|日期|内容|郎

模板 - 模板名称示例:expertise.php

选择器 - 模板示例的唯一jquery选择器:.sec.sec3> 。内容 (它用于选择可编辑的内容,我不希望用户能够编辑的内容将在此选择示例之外.sec.sec3> .button)

日期 - 用于修订

内容 - 已保存的网页

lang - wpml lang code

获取最新字段的功能(最新日期和当前日期)

function mwe_get_template_fields($template){
global $wpdb;
$t = $wpdb->prefix.'mwe_template_fields';

if(ICL_LANGUAGE_CODE !== NULL){

    $sql = $wpdb->prepare( "SELECT * FROM $t
    WHERE template = %s
    AND date IN (SELECT max(date) FROM $t)
    AND lang = %s
    GROUP BY selector
    ORDER BY date DESC
    ", $template,ICL_LANGUAGE_CODE);

    $result = $wpdb->get_results( $sql, ARRAY_A );

    if(empty($result)){
        global $sitepress;
        $lang=$sitepress->get_default_language();

        $sql = $wpdb->prepare( "SELECT * FROM $t
        WHERE template = %s
        AND date IN (SELECT max(date) FROM $t)
        AND lang = %s
        GROUP BY selector
        ORDER BY date DESC
        ", $template,$lang);

        $result = $wpdb->get_results( $sql, ARRAY_A );
    }
 }else{
    $sql = $wpdb->prepare( "SELECT * FROM $t
    WHERE template = %s
    AND date IN (SELECT max(date) FROM $t)
    GROUP BY selector
    ORDER BY date DESC
    ", $template);
    $result = $wpdb->get_results( $sql, ARRAY_A );
 }

 $return=array();
 foreach($result as $field){
    $return[$field['selector']]= str_replace('\"','"',$field['content']);
 }

 return $return;
}

我的search.php(非常简单)

<?php
get_header(); ?>
<section class="sec-pagetop">
    <article class="pagetop gradient2">
        <div class="container">
            <h1>Search</h1>
        </div>
    </article>
    <span class="go-to" data-target=".search-list"></span>
</section>
<section class="sec search-list">
    <div class="container">
    <?php if ( have_posts() ) : ?>
        <?php
        // Start the loop.
        while ( have_posts() ) : the_post(); ?>
        <article id="post-<?php the_ID(); ?>" ca;ss="fadeInAnim">
            <header class="entry-header">
                <?php the_title( sprintf( '<h2 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' ); ?>
            </header><!-- .entry-header -->
            <div class="entry-summary">
                <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
            <a class="btn-more" href="<?=get_permalink()?>"><?_e('See more')?></a>
        </article><!-- #post-## -->
        <?
        endwhile;

        the_posts_pagination( array(
            'prev_text'          => __( 'Previous page' ),
            'next_text'          => __( 'Next page' ),
            'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page' ) . ' </span>',
        ) );
    endif;
    ?>
    </div>
</section>

<?php get_footer(); ?>

我可以轻松搜索这些字段的内容,甚至根据帖子使用此模板获取网址,但如何将其添加到搜索中?

我也有想法,也许不是chaning搜索,我可以为while ( have_posts() )提供自己的帖子?覆盖搜索存档页面的全局帖子。

注意:我不想将我的字段保存到wp_posts。

注意2:我不想使用自定义搜索表单和功能,我想将我的结果添加到wordpress搜索中,以便与所有主题兼容

0 个答案:

没有答案