Zeigen Sie den benutzerdefinierten Post-Typ basierend auf dem Titel an, der dem aktuell ausgewählten Wert entspricht

Ok, eine ziemlich komplexe Sache, die ich hier versuche, und ich bin mir nicht sicher, wie ich das mit WordPress machen werde, aber ich hoffe, dass ein Genie da draußen helfen kann.

Ich erstelle im Grunde einige Vergleichsfunktionen, und derzeit habe ich zwei Auswahlfelder auf der Seite. Diese Auswahlfelder zeigen die Liste aller Beiträge innerhalb der benutzerdefinierten Beitragstyp “Länder” in ihnen, und wenn der Benutzer eine der Optionen aus der Liste auswählt, werde ich Ajax verwenden, um den Inhalt dieses bestimmten Beitrags unten anzuzeigen.

Ich habe derzeit eine nicht-Wordpress-Version von dem, was ich versuche zu tun, und hier ist der Code.

HTML

 United Kingdom Belarus Albania 

Jquery

 $('#compare-one').change(function(e){ $('#compare-one-container').empty(); $(this).find(':selected').each(function(i,e){ $.get("callbacks.php", // used to prevent caching in IE { nbRandom: Math.random() }, function(data){ $("#compare-one-container").html(data); }); }); 

});

callbacks.php

  

Wie du sehen kannst, habe ich das noch nicht in WordPress implementiert – einfach weil ich mir nicht sicher bin, wie ich das richtig machen soll!

Ich denke, meine Hauptfrage ist, wie man diesen aktuellen PHP-Code durch etwas ersetzt, das überprüft, ob der aktuell ausgewählte Wert gleich dem Seitentitel ist , und wenn dies der Fall ist, die Informationen (Inhalt, benutzerdefinierte Felder usw.) von dieser bestimmten Seite titeln Streichhölzer.

Jede Hilfe wird sehr geschätzt!

Vielen Dank

Solutions Collecting From Web of "Zeigen Sie den benutzerdefinierten Post-Typ basierend auf dem Titel an, der dem aktuell ausgewählten Wert entspricht"

Erhalten Sie nicht wirklich, was Ihr Hauptproblem ist. Versuchen Sie, zwei Post-Typen zu vergleichen und sie in einer Seitenvorlage anzuzeigen? Oder versuchen Sie, die aktuelle Seite mit den ausgewählten Beitragstypen zu vergleichen?

Versuchen Sie das Erstellen einer Seitenvorlage

 < ?php /* * Template Name: Compare */ ?> < ?php get_header(); ?> 
< ?php get_footer(); ?>

Als nächstes fügen Sie Ihrer functions.php eine Callback-function hinzu

 add_action('wp_ajax_callback_function', 'callback_function'); add_action('wp_ajax_nopriv_callback_function', 'callback_function'); // for not logged in user function callback_function() { if (isset($_POST['compare-one']) || isset($_POST['compare-two'])) { $arr_id = array($_POST['compare-one'],$_POST['compare-two']); $temp = $wp_query; $wp_query = null; $wp_query = new WP_Query(); $wp_query->query(array('post_type' => 'listing', 'posts_per_page' => 2, 'post__in' => $arr_id)); while ($wp_query->have_posts()) : $wp_query->the_post(); $custom = get_post_custom($post->ID); $beds = $custom['_beds'][0]; $baths = $custom['_baths'][0]; apply_filters('the_title', the_title()); apply_filters('the_content', the_content()); endwhile; $wp_query = null; $wp_query = $temp; rewind_posts(); } die(); } ?> 

und vergessen Sie nicht, WordPress Ajax-Skript zu lokalisieren, um es auf der Startseite zu verwenden

 wp_enqueue_script( 'ajax-script', 'ajax_object', array('jquery')); wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); // setting