2016-07-28 10 views

Antwort

5

Zunächst würde ich empfehlen, dass Sie mit der neuen Version des Plugins bleiben. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version 0.2.5. In der Tat wird die alte Version (0.0.1) nicht mehr unterstützt.

In Bezug auf Ihre Frage ist es in der Tat möglich zu filtern, welche Beiträge Sie nach Algolia schieben und durchsuchbar machen möchten.

Was ich von Ihrer Frage verstehe, ist, dass Sie Seiten Kategorien zugeordnet haben, und Sie möchten vermeiden, dass Seiten aus bestimmten Kategorien in den Suchergebnissen angezeigt werden. Wenn diese ersten Aussagen falsch sind, bitte kommentieren Sie diese Antwort und ich würde gerne ein Update schicken!

Sie können die Entscheidung über die Indexierung eines Beitrags mithilfe von WordPress-Filtern treffen. In Ihrem Fall, wenn Sie bereit sind, die Seiten aus dem searchable_posts Index auszuschließen, können Sie den algolia_should_index_searchable_post Filter verwenden. Wenn Sie die Seiten aus dem Index posts_page ausschließen möchten, können Sie den Filter algolia_should_index_post verwenden.

Hier ist ein Beispiel, wie Sie alle Seiten einer Liste von Kategorien, die durch ihre IDs identifiziert wurden, ausschließen können.

<?php 
    // functions.php of your theme 
    // or in a custom plugin file. 

    // We alter the indexing decision making for both the posts index and the searchable_posts index. 
    add_filter('algolia_should_index_post', 'custom_should_index_post', 10, 2); 
    add_filter('algolia_should_index_searchable_post', 'custom_should_index_post', 10, 2); 


    /** 
    * @param bool $should_index 
    * @param WP_Post $post 
    * 
    * @return bool 
    */ 
    function custom_should_index_post($should_index, WP_Post $post) { 
     // Replace these IDs with yours ;) 
     $categories_to_exclude = array(7, 22); 

     if (false === $should_index) { 
      // If the decision has already been taken to not index the post 
      // stick to that decision. 
      return $should_index; 
     } 

     if ($post->post_type !== 'page') { 
      // We only want to alter the decision making for pages. 
      // We we are dealing with another post_type, return the $should_index as is. 
      return $should_index; 
     } 


     $post_category_ids = wp_get_post_categories($post->ID); 
     $remaining_category_ids = array_diff($post_category_ids, $categories_to_exclude); 
     if (count($remaining_category_ids) === 0) { 
      // If the post is a page and belongs to an excluded category, 
      // we return false to inform that we do not want to index the post. 
      return false; 
     } 

     return $should_index; 
    } 

Mehr Informationen über die Algolia Search-Plugin für Wordpress erstreckt, kann auf documentation: Basics of extending the plugin

-Update zu finden:

Der Code hat Biene aktualisiert, um sicherzustellen, kein Produkt, wenn es ausschließen ist mehreren Kategorien zugeordnet und nicht alle sind ausgeschlossen.

+0

danke! Ich habe die Version 0.2.8 heruntergeladen und den Code oben in der functions.php meines Themas ausprobiert und im WordPress-Admin-Panel auf Reindex geantwortet, es wurden keine Datensätze zu Algolia indiziert. –

+0

Haben Sie Hilfe zu diesem Problem? - Beim Aktivieren des obigen Codes (in einer Plugin-Datei) mit meinen IDs und der Neuindizierung werden keine Datensätze an Algolia indiziert. –

+0

Haben Sie PHP Fehler protokolliert? – rayrutjes

Verwandte Themen