Mimoupeis Δημοσ. 26 Μαρτίου 2018 Δημοσ. 26 Μαρτίου 2018 Γεια σας παιδα, εχω αυτον τον κωδικα για τις ετικετες σε λινκς στο περιεχομενο στο Wordpress αλλα μου επεμβαινει ακομα και σε σταυπαρχων html tags. Πχ. σε img στο alt="bla blu" βρισκει την λεξη bla και εισχωρει τον κωδικα των λινκς με αποτελεσμα να σπαει ο κωδικας του img πχ <img src="1.jpg" alt="<a href="link">bla</a> bul /> Και ετσι φαινεται ασχημα στο ποστ περισσευομενος κωδικας html απο το τμημα της img function link_words( $text ) { $replace = array(); $tags = get_tags(); if ( $tags ) { foreach ( $tags as $tag ) { $replace[ $tag->name ] = sprintf( '<a href="%s">%s</a>', esc_url( get_term_link( $tag ) ), esc_html( $tag->name ) ); } } $text = str_replace( array_keys($replace), $replace, $text ); return $text; } add_filter( 'the_content', 'link_words' ); Κάποια βοηθεια πλιζ? Ευχαριστω.
Mimoupeis Δημοσ. 28 Μαρτίου 2018 Μέλος Δημοσ. 28 Μαρτίου 2018 Θελω αυτος ο κωδικας να μην επιρεαζει τα HTML tags <img> και <a> γιατι μπαινει μερα στο alt="" και title="" και χωνει links αν βρει αναλογες λεξεις.
exarhis Δημοσ. 28 Μαρτίου 2018 Δημοσ. 28 Μαρτίου 2018 Μα δεν πρέπει να βάζεις html tags σε αυτή τη function. Μόνο text παίρνει
Mimoupeis Δημοσ. 29 Μαρτίου 2018 Μέλος Δημοσ. 29 Μαρτίου 2018 (επεξεργασμένο) Δεν ξερω παιδια παντος αν βρει μια λεξη που υπαρχει και σε tag στα πεδια alt= και title= βαζει λινκ πχ. το <img src="1.jpg" alt="Το δεοχειο που γεμιζει μονο του" /> το κανει <img src="1.jpg" alt="Το δεοχειο που <a href="https://mysite/tag/γεμιζει">γεμιζει</a> μονο του" />. Το μονο του" /> βγαινει ετσι κατω απο την εικονα.. Επεξ/σία 29 Μαρτίου 2018 από Mimoupeis
Members gsarig Δημοσ. 30 Μαρτίου 2018 Members Δημοσ. 30 Μαρτίου 2018 Είναι αυτό που λες - βρίσκει τη λέξη στο alt ή στο title και προσπαθεί να την μετατρέψει σε link. Ίσως αν χρησιμοποιούσες regular expressions και το άλλαζες κάπως έτσι να σου δούλευε: function link_words( $text ) { $tags = get_tags(); if ( $tags ) { $match = []; $replace = []; foreach ( $tags as $tag ) { $match[] = '/(?!=")(' . $tag->name . ')(?![^=]*?")/'; $replace[] = '<a href="' . get_term_link( $tag->term_id ) . '">' . $tag->name . '</a>'; } $text = preg_replace( $match, $replace, $text ); } return $text; } add_filter( 'the_content', 'link_words' ); Αντικαθιστά το όνομα του tag εκτός αν αυτό βρίσκεται ανάμεσα σε =" " (π.χ. alt="", title="" κλπ).
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα