Empêcher l'ouverture dans un nouvel onglet après un add_filter

Le problème exposé dans ce sujet a été résolu.

Bonjour,
j’ai, dans l’optique de faire une interface d’édition front-end des articles, ajouté ce morceau de code pour intercepter les liens vers l’interface :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php add_filter('get_edit_post_link', 'get_edit_post_link_178416', 99, 3);

function get_edit_post_link_178416($link, $post_id, $context) {
    if(!is_singular('post'))
        return "";
    $lang = pll_current_language();
    $id_add_page = pll_get_post(172, $lang );

    return add_query_arg( 'id', $post_id, get_permalink($id_add_page));
}

Le code fonctionne, quand je clique sur le lien éditer des articles, je suis bien redirigé vers ma page. Cependant elle est ouverte dans un nouvel onglet. Comment empêcher cela ?

NB : la page 172 est ma page d’édition front-end en français, la fonction pll_get_post me permet de retrouver la version dans la langue de l’utilisateur.

Merci d’avance,
Dark Patate.

+0 -0

Salut,
merci pour ta réponse. J’ai trouvé ce morceau de code sur internet qui est sensé me permettre d’éditer le code du lien à la volée, mais il ne rentre jamais dedans. Saurais tu pourquoi ?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
add_filter( 'edit_post_link', 'edit_post_link_178416', 99, 3 );
function edit_post_link_178416( $link, $post_id, $text )
{
    write_log( "EDIT POST LINK" );

    // Add the target attribute 
    if( true === strpos( $link, 'target="_blank"' ) )
        $link = str_replace( 'target="_blank"', '', $link );

    return $link;
}

[Edit] j’ai vu ça là : https://wordpress.stackexchange.com/questions/251460/i-want-edit-post-link-to-open-in-a-new-window-tab-target-blank

+0 -0

Quand je regarde le code source, j’ai bien le _blank, du coup c’est normal qu’il ouvre dans un nouvel onglet. J’aimerais l’enlever, sans modifier directement le code du lien dans Wordpress (pour éviter de perdre ma modif à la prochaine màj). J’aimerais le faire avec les fonctions misent à disposition par Wordpress, mais je ne vois pas trop comment faire.

(je me rends compte que j’ai oublié de préciser dans mon message que j’étais sous Wordpress, j’ai mis que le tag. Désolé, si tu ne comprenais pas mes propos, c’était pas forcément super clair sans ce contexte).

+0 -0

Salut,
merci pour ta réponse. J’ai trouvé ce morceau de code sur internet qui est sensé me permettre d’éditer le code du lien à la volée, mais il ne rentre jamais dedans. Saurais tu pourquoi ?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
add_filter( 'edit_post_link', 'edit_post_link_178416', 99, 3 );
function edit_post_link_178416( $link, $post_id, $text )
{
  write_log( "EDIT POST LINK" );

    // Add the target attribute 
    if( true === strpos( $link, 'target="_blank"' ) )
        $link = str_replace( 'target="_blank"', '', $link );

    return $link;
}

[Edit] j’ai vu ça là : https://wordpress.stackexchange.com/questions/251460/i-want-edit-post-link-to-open-in-a-new-window-tab-target-blank

Dark Patate

strpos ne peut pas retourner true, c’est ça ton problème.

L’inverse de false === $foo, c’est pas true === $foo mais false !== $foo.

+0 -0

J’ai pas l’impression, en tout cas dans les options du thème. Après, j’ai pas fouillé dans le code.

Merci victor, c’était vraiment une erreur à la con ça ! :) Mais ça ne marche toujours pas, je ne sais pas pourquoi, mais il ne rentre pas dans ma fonction. On dirait que le add_filter ne marche pas :/

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte