Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας παιδα, εχω αυτον τον κωδικα για τις ετικετες σε λινκς στο περιεχομενο στο 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' );

Κάποια βοηθεια πλιζ?

Ευχαριστω.
 

Δημοσ.

Θελω αυτος ο κωδικας να μην επιρεαζει τα HTML tags  <img> και <a> γιατι μπαινει μερα στο alt="" και title="" και χωνει links αν βρει αναλογες λεξεις.

Δημοσ. (επεξεργασμένο)

Δεν ξερω παιδια παντος αν βρει μια λεξη που υπαρχει και σε tag στα πεδια alt= και title= βαζει λινκ πχ. το <img src="1.jpg" alt="Το δεοχειο που γεμιζει μονο του" /> το κανει <img src="1.jpg" alt="Το δεοχειο που <a href="https://mysite/tag/γεμιζει">γεμιζει</a> μονο του" />.

Το   μονο του" /> βγαινει ετσι κατω απο την εικονα..

Επεξ/σία από Mimoupeis
  • Members
Δημοσ.

Είναι αυτό που λες - βρίσκει τη λέξη στο 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="" κλπ). 

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...