wake-up-neo.net

Frontend-Bearbeitung, Frontend-Benutzer-Dashboard

Ich erstelle eine Website, damit Benutzer ihre Artikel über das Frontend einreichen können. Ich habe einige Dinge eingerichtet:

  • Die Möglichkeit, benutzerdefinierte Beitragstypen über das Front-End einzureichen
  • Vom Backend blockiert.

Ich möchte eine Seite (für angemeldete Benutzer) mit der Bezeichnung "Meine Beiträge" oder "Einreichungen" erstellen, auf der angemeldete Benutzer ihre eigenen benutzerdefinierten Beitragstypen und ihren Status anzeigen, damit sie wissen, was veröffentlicht wurde und was veröffentlicht wird in der Zukunft veröffentlicht, ausstehend, Entwürfe (damit sie zurückgehen und bearbeitet werden können) und ausstehend (damit ich als Herausgeber weiß, wann ein Artikel für meine Rezension bereit ist).

Ich schätze, ich suche ein Frontend-Benutzer-Dashboard. Ich habe WP User Frontend ausprobiert, aber es kollidiert mit s2member und zeigt keine Posts von registrierten s2member-Benutzern an.

Ich brauche nur etwas Einfaches, mit dem Benutzer vom Frontend aus leicht auf ihre Beiträge zugreifen können. Ich habe versucht, ein Plugin nach dem anderen zu installieren und meinem Short Code Creator Dinge hinzuzufügen, aber nichts funktioniert so, wie ich es brauche.

Es muss nicht schön sein, nur ein einfacher Code, den ein Nicht-Kodierer (wie ich) nach benutzerdefinierten Beitragstypen aktualisiert.

Zur weiteren Erläuterung möchte ich einen Code auf einer Seite haben, der den Benutzern alle von ihnen eingereichten Angebote (und ihren Status) und einen anderen Code, der den Benutzern alle von ihnen eingereichten Artikel (und ihren Status) anzeigt. usw.

Jede Hilfe wäre sehr nützlich

Danke im Voraus!

2
Trce

Ich habe etwas, das ich von Zeit zu Zeit benutze, wenn ich so etwas brauche:

<?php
/*
Plugin Name: List User Posts
Plugin URI: http://en.bainternet.info
Description: lists user posts on the front end
Version: 0.1
Author: Bainternet
Author URI: http://en.bainternet.info
*/

if (!class_exists('list_user_posts')){
    /**
    * list_user_posts
    * @author Ohad Raz
    */
    class list_user_posts
    {
        /**
         * __construct class constructor
         * 
         * @author Ohad Raz
         * @param array $args
         */
        function __construct($args = array())
        {
            add_shortcode('user_posts', array($this,list_user_posts));
        }

        /**
         * list_user_posts shortcode handler
         * 
         * @author Ohad Raz
         * @param  array  $attr    shortcode attributes
         * @param  string $content shortcode content
         * @return string
         */
        public function list_user_posts($attr = array(), $content = null)
        {
            extract(shortcode_atts(array(
                    'post_type' => 'post',
                    'number' => 10,
                ), $attr));

            //if the user is not logged in the give him a link to log in
            if (!is_user_logged_in()){
                return sprintf(__('You Need to <a href="%s">Login</a> to see your posts'),wp_login_url(get_permalink()));
            }
            //this is for pagination
            $pagenum = isset( $_GET['pagenum'] ) ? intval( $_GET['pagenum'] ) : 1;

            //get user's posts
            $args = array(
                'author' => get_current_user_id(), //this makes the query pull post form the current user only
                'post_status' => array('draft', 'future', 'pending', 'publish'),
                'post_type' => $post_type,
                'posts_per_page' => $number,
                'paged' => $pagenum
            );
            $user_posts = new WP_Query( $args );

            $retVal = '';
            if ( $user_posts->have_posts() ) {

                //set table headers
                $retVal = '
                    <table class="user-posts-table" cellpadding="0" cellspacing="0">
                        <thead>
                            <tr>
                                <th>'.__( 'Title', 'lup' ).'</th>
                                <th>'.__( 'Status', 'lup' ).'</th>
                                <th>'.__( 'Actions', 'lup' ).'</th>
                            </tr>
                        </thead>
                        <tbody>';
                //loop over and add each post to the table
                global $post;
                $temp = $post;
                while ($user_posts->have_posts()){
                    $user_posts->the_post();
                    $title = $post->post_title;
                    $link = '<a href="'.get_permalink().'" title="'.sprintf( esc_attr__( 'Permalink to %s', 'lup' ), the_title_attribute( 'echo=0' ) ).'" rel="bookmark">'.$title.'</a>';
                    $retVal .= 
                            '<tr>
                                <td>
                                    '.( in_array( $post->post_status, array('draft', 'future', 'pending') ) ? $title : $link).'
                                </td>
                                <td>
                                    '.$post->post_status .'
                                </td>
                                <td>
                                    <a href="LINK_TO_YOUR_EDIT_PAGE"><span style="color: green;">'. __( 'Edit', 'lup' ).'</span></a>
                                    <a href="LINK TO YOUR DELETE PAGE"><span style="color: red;">'.__( 'Delete', 'lup' ).'</span></a>
                                </td>
                            </tr>';
                }
                $retVal .= '</tbody></table>';

                //create pagination (if needed)
                if ($user_posts->found_posts > $number ){
                    $pagination = paginate_links( array(
                        'base' => add_query_arg( 'pagenum', '%#%' ),
                        'format' => '',
                        'prev_text' => __( '&laquo;', 'lup' ),
                        'next_text' => __( '&raquo;', 'lup' ),
                        'total' => $user_posts->max_num_pages,
                        'current' => $pagenum
                        ) 
                    );
                    if ( $pagination ) {
                        $retVal .= '<div class="pagination">'.$pagination .'</div>';
                    }
                }
                //return table of posts
                return $retVal;
            }else{
                //  no posts for this users found
                return  __("No Posts Found");
            }
        }

    }//end list_user_posts class
}//end if
new list_user_posts();

Es ist überall kommentiert, so dass Sie verstehen können, was dort vor sich geht.

Verwendung erstelle einfach eine Seite und füge diesen Shortcode hinzu: [user_posts], der dir eine Liste der Beiträge des angemeldeten Benutzers gibt.

Sie können den Beitragstyp auch wie folgt ändern: [user_posts post_type="deal" number="5"]

1
Bainternet