recherche

Maison  >  Questions et réponses  >  le corps du texte

Supprimer le type de publication personnalisé et rediriger vers la page d'accueil

<p>J'utilise <code>get_delete_post_link</code> pour supprimer une publication personnalisée du frontend, mais après la suppression, j'obtiens une page 404. Comment rediriger vers la page d’accueil après avoir supprimé une publication personnalisée ? </p> <p>J'ai inséré ce code dans function.php : </p> <pre class="brush:php;toolbar:false;">function wp_delete_post_link($link = 'Supprimer la publication', $before = '', $after = '') { poste $ global ; $link = "<a href='" . wp_nonce_url( get_bloginfo('url') . "/wp-admin/post.php?action=delete&amp;post=" . $post->ID, 'delete-post_' . $post->ID) . echo $avant . $link . }</pré> <p>Ensuite, j'ai créé un shortcode pour générer le bouton de suppression : </p> <pre class="brush:php;toolbar:false;">fonction wpc_elementor_shortcode( $atts ) { wp_delete_post_link(); } add_shortcode( 'my_shortcode', 'wpc_elementor_shortcode');</pre> <p>Existe-t-il un moyen d'améliorer ce code pour le rediriger après suppression ? </p>
P粉590428357P粉590428357451 Il y a quelques jours506

répondre à tous(2)je répondrai

  • P粉020556231

    P粉0205562312023-09-05 00:57:37

    Essayez ceci :

    /**
     * template_redirect Action Hook.
     * Redirect users to home page
     * after deleting a custom post type post.
     */
    function redirect_on_delete() {
        // Custom post type plural name or rewrite slug name.
        $custom_post_type = 'CUSTOM_POST_TYPE';
    
        $regex = "/" . $custom_post_type . ".*" . preg_quote(  "/?deleted=", "/" ) . "\d+" . "/i";
    
        if ( preg_match( $regex, $_SERVER["REQUEST_URI"] ) ) {
            \nocache_headers();
            if ( \wp_safe_redirect( esc_url( get_home_url() ) ) ) {
                exit;
            };
        }
    }
    add_action( 'template_redirect', 'redirect_on_delete', 10, 1 );

    répondre
    0
  • P粉609866533

    P粉6098665332023-09-05 00:40:08

    J'ai essayé de nombreux extraits de code à rediriger après la suppression de la publication personnalisée, mais aucun d'entre eux n'a fonctionné. J'ai donc essayé une autre approche : rediriger la page 404 vers un tableau de bord d'éditeur frontal personnalisé que j'ai créé pour les utilisateurs du rôle d'éditeur. Le code est le suivant :

    function editor_redirect_404() {
        global $wp_query;
        if ( $wp_query->is_404 ) {
          wp_redirect( home_url( '/dashboard/' ) );
          exit;
        }
    }
    add_action('template_redirect', 'editor_redirect_404', 1);

    Je ne veux pas que les visiteurs du site rencontrent cela (ils ont des pages 404 régulières), donc cette redirection ne sera appliquée que si l'utilisateur est connecté et a le rôle d'éditeur. Ceci est réalisé en utilisant des générateurs conditionnels du plugin WPCodeBox.

    répondre
    0
  • Annulerrépondre