5546 sujets

Sémantique web et HTML

Bonjour à tous.

J'ai un soucis sur mes wordpress, car je me retrouve souvent avec des point de ponctuation qui se retrouve à la ligne.

Du coup je me demande pourquoi ne pas remplacer dans les titres les espaces par des espace insécable.
    $title = str_replace (' ?', ' ?', $title);


Et à y réfléchir je me dis pourquoi n'est ce pas toujorus le cas.
Mais je trouve très peux de chose sur internet à ce sujet, alors que ca devrais être la norme?

Alors quel est mon erreur?

D'autant que c'est la règle?
http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=2039
Modifié par gotcha5832 (23 Oct 2015 - 16:19)
gotcha5832 a écrit :
Merci papyJP mais ca fonctionne pas.
Car du coup si le titre est très long il ne passe jamais à la ligne.

En savoir +
http://typographisme.net/post/Les-espaces-typographiques-et-le-web

Tout dépend de ce que à quoi tu appliques le style.
Par exemple tu peux écrire:

<h2><span>Ceci est un titre très long</span> <span>qui va à la ligne éventuellement</span>
<span>ou non selon la largeur de</span> <span>la zone d'affichage</span></h2>

avec

h2 span {white-space:nowrap;}
gotcha5832 a écrit :
Et à y réfléchir je me dis pourquoi n'est ce pas toujorus le cas.
Mais je trouve très peux de chose sur internet à ce sujet, alors que ca devrais être la norme?

Alors quel est mon erreur?

Bonsoir. Plutôt que de charger php de ce traitement à refaire à chaque construction de la page, il est préférable d'effectuer cette opération directement sur la base de donné, avec un replace().
Je te remercie je suis en train d'y travailler effectivement.
Plus une modification à la voler lors de la sauvegarde.
A noter qu'avec uniquement des espaces insécables non plus, le titre n'irait plus du tout à la ligne s'il était très long.

Pour le coup, la solution des espaces insécables est probablement plus simple que les span, si tu utilises un CMs (en principe, pas de HTML dans un titre)
Voici la partie Mysql:
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, ' .', '.') WHERE post_title LIKE '% .%'
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, ' ,', ',') WHERE post_title LIKE '% ,%'
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, ' :', '&nbsp;:') WHERE post_title LIKE '% :%'
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, ' ;', '&#8239;;') WHERE post_title LIKE '% ;%'
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, ' !', '&#8239;!') WHERE post_title LIKE '% !%'
UPDATE X87fsk987_posts SET post_title = RE??PLACE (post_title, ' ?', '&#8239;?') WHERE post_title LIKE '% ?%'???
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, '« ', '«&nbsp;') WHERE post_title LIKE '%« %'
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, ' »', '&nbsp;»') WHERE post_title LIKE '% »%'
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, '( ', '(') WHERE post_title LIKE '%( %'
UPDATE X87fsk987_posts SET post_title = REPLACE (post_title, ' )', ')') WHERE post_title LIKE '% )%'
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, ' .', '.') WHERE post_content LIKE '% .%'
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, ' ,', ',') WHERE post_content LIKE '% ,%'
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, ' :', '&nbsp;:') WHERE post_content LIKE '% :%'
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, ' ;', '&#8239;;') WHERE post_content LIKE '% ;%'
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, ' !', '&#8239;!') WHERE post_content LIKE '% !%'
UPDATE X87fsk987_posts SET post_content = RE??PLACE (post_content, ' ?', '&#8239;?') WHERE post_content LIKE '% ?%'???
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, '« ', '«&nbsp;') WHERE post_content LIKE '%« %'
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, ' »', '&nbsp;»') WHERE post_content LIKE '% »%'
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, '( ', '(') WHERE post_content LIKE '%( %'
UPDATE X87fsk987_posts SET post_content = REPLACE (post_content, ' )', ')') WHERE post_content LIKE '% )%'


Plus la partie PHP pour Wp
function correction_french_rule($post_id, $text) {
    $bad_rule = array(" .", " ,", " :", " ;", " !", " ?", "« ", " »", "( ", " )", "test");
    $good_rule = array(".", ",", "&nbsp;:", "&#8239;;", "&#8239;!", "&#8239;?", "«&nbsp;", "&nbsp;»", "(", ")", "corrigé");
    $text_ruled = str_replace($bad_rule, $good_rule, $text);
    return $text_ruled;
}

function corriger_with_french_rule($post_id) {
        $my_postid = $post_id;
        $content_post = get_post($my_postid);
        $content = $content_post->post_content;

        $my_post = array(
          'ID'           => $post_id,
          'post_title'   => correction_french_rule($post_id,get_the_title( $post_id )),
          'post_content' => correction_french_rule($post_id, $content ),
        );
        // Un-hook this function to avoid infinite loop
        remove_action( 'edit_post', 'corriger_with_french_rule' );
        // Update the post into the database
          wp_update_post( $my_post );
        // re-hook this function
        add_action( 'edit_post', 'corriger_with_french_rule' );
}
add_filter('edit_post', 'corriger_with_french_rule');

Modifié par gotcha5832 (23 Oct 2015 - 16:19)