Un utente ha chiesto informazioni su BuddyPress Xprofile Custom Field Types di Wordpress

Autolink non funziona

Un utente ha chiesto 👇

Ho due aree in cui ho disabilitato Autolink. nella pagina membri questi campi vengono visualizzati come collegamenti a pagine di ricerca inesistenti. Vorrei che queste aree non fossero collegate. qualche idea su come la funzione di connessione automatica non funziona o su come disattivarla?

Ho provato a creare bp-custom.php e utilizzare questo codice:

add_action (‘init’, ‘remove_xprofile_links’);
funzione remove_xprofile_links () {
remove_filter (‘bp_get_the_profile_field_value’, ‘xprofile_filter_link_profile_data’, 9, 3);
}
?>

Nessun effetto.

apprezzeremmo qualsiasi aiuto.

Autore del plugin

(@sbrajesh)

2 anni, 3 mesi fa

Ciao,
Puoi dirmi per favore i tipi di parchi per i quali sta accadendo? Posso esaminarlo e controllare i problemi / la soluzione.

Grazie
Brajesh

Lanciatore di thread

(@pandraka)

2 anni, 3 mesi fa

Buongiorno Brajesh,

Grazie per la risposta rapida. Entrambi i campi sono un tipo di campo Multiplexer di tassonomia personalizzata. Grazie per l’aiuto

Patricia

Lanciatore di thread

(@pandraka)

2 anni, 3 mesi fa

Posso confermare che più domini sono gli unici che hanno collegamenti. Tutti gli altri campi del profilo x sono meno connessi. Non sono sicuro di come risolvere questo problema. Qualche idea?

Autore del plugin

(@sbrajesh)

2 anni, 3 mesi fa

Ciao,
Mi dispiace per l’inconveniente.

Forse ho dimenticato la tassonomia / impostazioni di lavoro.

Lascia che ti fornisca un aggiornamento entro lunedì.

Grazie
Brajesh

Lanciatore di thread

(@pandraka)

2 anni, 3 mesi fa

Buona serata,

Grazie per aver guardato questo per me.

Cordiali saluti

Patricia

Autore del plugin

(@sbrajesh)

2 anni, 3 mesi fa

Buon pomeriggio Patricia.
Grazie per la pronta risposta. Apprezzo la tua pazienza.

Di
Brajesh

Autore del plugin

(@sbrajesh)

2 anni, 3 mesi fa

Ciao Patricia,
Grazie per la vostra pazienza.

Lo guardavo adesso.

Quando disabiliti il ​​collegamento automatico, i termini vengono collegati alla loro pagina di archivio. È il comportamento applicato per i termini in questo plugin.

C’è una possibilità che la tassonomia che puoi scegliere non abbia un archivio?

Lanciatore di thread

(@pandraka)

2 anni, 3 mesi fa

Buongiorno @sbrajesh

Non sono sicuro che esista una pagina di archivio dei termini. Immagino che il collegamento non porti a una pagina “non trovata”. Tutti i campi che sto utilizzando vengono creati utilizzando il plug-in del tipo di campo personalizzato BuddyPress Xprofile. Utilizzo il tipo di campo Tassonomia personalizzata multiselettore per creare un menu a discesa che consenta a un utente di selezionare diversi campi. Desidero disattivare i collegamenti poiché i campi collegati contengono una pagina che non è stata trovata. Non sono presenti altri collegamenti a nessun altro campo precedentemente allineato oltre al nome del membro.

(@magland)

2 anni, 2 mesi fa

Ho anche un problema correlato con la funzionalità di collegamento automatico per il multiselettore di tassonomia personalizzato e il multiselettore post personalizzato.

Vorrei che il collegamento automatico fosse abilitato ma questo dovrebbe cercare nella directory dei membri.

Invece ottengo un elenco html rotto stampato sullo schermo.

Non guardi la funzione ‘display_filter’ in entrambe le classi (class-field-type-multi-select-taxonomy.php e class-field-type-type-multi-select-post-type.php) o controlla se autolink è abilitato o nessuno dei due ha e non ha codice per fare clic sugli elementi tramite una query di ricerca nella directory dei membri.

Il codice del plugin originale è il seguente:

        /**
         * Modify the appearance of value. Apply autolink if enabled.
         *
         * @param  string   $value      Original value of field
         * @param  int      $field_id   Id of field
         * @return string   Value formatted
         */
        public static function display_filter($field_value, $field_id = '') {

            $new_field_value = $field_value;

            if (!empty($field_value) && !empty($field_id)) {
                $field = BP_XProfile_Field::get_instance($field_id);
                if ($field) {
                    $do_autolink = apply_filters('bxcft_do_autolink',
                        $field->get_do_autolink());
                    if ($do_autolink) {
                        $query_arg = bp_core_get_component_search_query_arg( 'members' );
                    }
                    $childs = $field->get_children();
                    if (!empty($childs) && isset($childs[0])) {
                        $taxonomy_selected = $childs[0]->name;
                    }
                    $aux = '';
                    $term_ids = explode(',', $field_value);
                    foreach ($term_ids as $tid) {
                        $tid = trim($tid);
                        $term = get_term_by('name', $tid, $taxonomy_selected);
                        if ($term && $term->taxonomy == $taxonomy_selected) {
                            if (empty($aux)) {
                                $aux .= '<ul class="list_custom_taxonomy">';
                            }
                            $aux .= '<li>';
                            if ($do_autolink) {
                                $search_url = add_query_arg( array(
                                    $query_arg => urlencode( $tid )
                                ), bp_get_members_directory_permalink() );
                                $aux .= '<a href="' . esc_url( $search_url ) .
                                    '" rel="nofollow">' . $term->name . '</a>';
                            } else {
                                $aux .= $term->name;
                            }
                            $aux .= '</li>';
                        }
                    }
                    if (!empty($aux)) {
                        $aux .= '</ul>';
                    }
                    $new_field_value = $aux;
                }
            }

            /**
             * bxcft_multiselect_custom_taxonomy_display_filter
             *
             * Use this filter to modify the appearance of Multiselector
             * Custom Taxonomy field value.
             * @param  $new_field_value Value of field
             * @param  $field_id Id of field.
             * @return  Filtered value of field.
             */
            return apply_filters('bxcft_multiselect_custom_taxonomy_display_filter',
                $new_field_value, $field_id);
        }

(@magland)

2 anni, 2 mesi fa

Una ricerca su Google per “list-terms-bpscscftr-multi-taxonomy” restituisce un sito attivo che mostra la query …

https://puppy.pics/members/yorkielife/profile/

Nome del cane: Zuzi

La parola “Zuzi” è collegata a: https://puppy.pics/members/?members_search=Zuzi

Il sito ovviamente utilizza il tuo plugin e la sezione per la gara mostra il problema:

Razza:
<ul class='bpxcftr-multi-taxonomy-terms-list'><li><a href="https://puppy.pics/rt_dog-breeds/yorkshire-terrier/">Yorkshire Terrier</a></li></ul>

Dovrebbe essere:

Razza: Yorkshire Terrier

con collegamento ipertestuale a https://puppy.pics/members/?members_search=Yorkshire+Terrier

Spero che abbia senso!

Autore del plugin

(@sbrajesh)

2 anni, 2 mesi fa

Ciao @magland
Il mio consiglio è di disabilitare il collegamento automatico (che dovrebbe essere l’impostazione predefinita) e si collegherà correttamente alla pagina di archivio dei termini della tassonomia. Se abiliti il ​​collegamento automatico, BuddyPress creerà problemi con esso.

Inoltre, il campo multi-tassonomico non è ricercabile. I valori sono memorizzati come ID seriali, il che li rende un cattivo motore di ricerca.

Per quanto riguarda il sito sopra, hanno una connessione automatica abilitata, se la disabilita per il dominio specifico, funzionerà come previsto.

Di
Brajesh

(@magland)

2 anni, 2 mesi fa

Grazie per la risposta, però, non sono d’accordo.

Se un collegamento automatico è disabilitato, i valori dovrebbero apparire come testo, non come collegamenti all’archivio della tassonomia. O questa dovrebbe essere un’opzione ma il comportamento previsto è solo testo.

Se il collegamento automatico è abilitato, devono essere cercati.

Anche se potrebbe non essere molto adatto in termini di prestazioni delle query di ricerca, la funzionalità del fine settimana è di renderli autolink in modo che la funzionalità debba essere implementata sul front-end. Il plugin non è completamente compatibile con buddypress, non viceversa.

Autolink attualmente interrompe il sito emettendo escape html.

Autore del plugin

(@sbrajesh)

2 anni, 2 mesi fa

Ciao,
Sono d’accordo con te che il comportamento irresponsabile del collegamento automatico si basa su ciò che fa BuddyPress.
Spero che dovremmo apportare una modifica che quando una connessione automatica è abilitata, non è la connessione. Se non abilitato, collega a testo normale (nome del termine come hai menzionato).

Non ha senso collegare termini arbitrari alla directory dei membri. È possibile utilizzare un campo multilingue standard o una casella di controllo per ottenere lo stesso comportamento navigabile se necessario.

Lo scopo del termine è organizzare i contenuti e non gli utenti. Perché un termine di tassonomia non ha senso con una ricerca nella directory dei membri e non con il termine archivio, (forse mi sbaglio nelle mie ipotesi, per favore aiutami a capire meglio il caso d’uso).

Se il tuo obiettivo è classificare gli utenti, ti consiglio BuddyPress Ball Types (abbiamo un plug-in gratuito per il generatore di tipi di membri BuddyPress).

Risolverò il comportamento del collegamento automatico nel prossimo aggiornamento.

Grazie
Brajesh

Autore del plugin

(@sbrajesh)

2 anni, 2 mesi fa

Permettimi fino a domani di organizzare il comportamento della connessione automatica.

Grazie
Brajesh

(@magland)

2 anni, 2 mesi fa

È davvero molto semplice, nel mio caso ho due tassonomie che memorizzano i termini per “interessi” e “competenze” e un tipo di lavoro che memorizza i luoghi di lavoro. I miei membri sono in grado di selezionare più termini da, ad esempio abilità e visualizzarli sul loro profilo.

L’idea alla base della loro ricerca è che possono fare clic sull’abilità e trovare altri membri che hanno la stessa abilità o interesse.

Allo stesso modo, per un tipo di lavoro possono fare clic sulla posizione o sul nome dell’edificio e ottenere altri membri che lavorano lì.

I tipi di lavoro e le tassonomie sono ottimi candidati per memorizzare queste informazioni, i tipi di membri non sarebbero adatti in questo caso. Nessuno di loro farebbe più scelte o caselle di controllo.

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *