Hinzufügen einer benutzerdefinierten Textzeile zu PHP-Code

Der folgende Code wird verwendet, um meine Tweets einzutragen und sie als einzelne Blogposts auf meiner WordPress-Site zu veröffentlichen.

Ich möchte einen “Follow me auf Twitter link” nach dem Tweet hinzufügen, wenn es im Hauptteil des Posts angezeigt wird. Wie würde ich das tun?

Zum Beispiel möchte es so aussehen:

Titel – Abgeschnittener Tweet

Körper – Tweet in voller Länge

Post Tweet Text – Folge mir auf Twitter (mit einem Link)

Hier ist der Code. Jede Hilfe wäre fantastisch.

     <input type="checkbox" value="1" name="include_rts" id="include_rts"get_option( 'include_rts', true ) ); ?> />        <input type="checkbox" value="1" name="include_replies" id="include_replies"get_option( 'include_replies', true ) ); ?> />  error( __( "Make sure you select a valid category to import your checkins into." ) ); if ( empty( $_POST['author'] ) || !ctype_digit( $_POST['author'] ) ) $this->error( __( "You must select an author to assign to all checkins." ) ); if ( isset( $_POST['auto_import'] ) ) $_POST['auto_import'] = true; else $_POST['auto_import'] = false; if ( isset( $_POST['include_rts'] ) ) $_POST['include_rts'] = true; else $_POST['include_rts'] = false; if ( isset( $_POST['include_replies'] ) ) $_POST['include_replies'] = true; else $_POST['include_replies'] = false; // If there were errors, output them, otherwise store options and start importing if ( count( $this->errors ) ) { $this->step = 'greet'; } else { $this->set_option( array( 'category' => (int) $_POST['category'], 'tags' => explode( ',', $_POST['tags'] ), 'author' => (int) $_POST['author'], 'include_replies' => (bool) $_POST['include_replies'], 'include_rts' => (bool) $_POST['include_rts'], 'auto_import' => (bool) $_POST['auto_import'], 'user_id' => $this->service->get_token()->get_meta( 'user_id' ), ) ); $this->step = 'import'; } } function build_request_url() { // Base request URL $url = "http://api.twitter.com/1/statuses/user_timeline.json?"; $params = array( 'user_id' => $this->get_option( 'user_id' ), 'trim_user' => 'true', 'count' => 75, // More than this and Twitter seems to get flaky 'include_entities' => 'true', ); if ( false == $this->get_option( 'include_replies' ) ) $params['exclude_replies'] = 'true'; if ( true == $this->get_option( 'include_rts' ) ) $params['include_rts'] = 'true'; $url = $url . http_build_query( $params ); if ( $this->auto_import ) { // Locate our most recently imported Tweet, and get ones since then $latest = get_posts( array( 'numberposts' => 1, 'orderby' => 'date', 'order' => 'DESC', 'meta_key' => 'keyring_service', // In case there are other asides 'meta_value' => 'twitter', 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-standard' ), // Tweets stored as asides 'operator' => 'IN', ) ), ) ); // If we have already imported some, then start since the most recent if ( $latest ) { $max = get_post_meta( $latest[0]->ID, 'twitter_id', true ); $url = add_query_arg( 'since_id', $max, $url ); } } else { // Handle page offsets (only for non-auto-import requests) $url = add_query_arg( 'page', $this->get_option( 'page', 0 ), $url ); } return $url; } function extract_posts_from_data( $raw ) { global $wpdb; $importdata = $raw; if ( null === $importdata ) { $this->finished = true; return new Keyring_Error( 'keyring-twitter-importer-failed-download', __( 'Failed to download your tweets from Twitter. Please wait a few minutes and try again.', 'keyring' ) ); } // Check for API overage/errors if ( !empty( $importdata->error ) ) { $this->finished = true; return new Keyring_Error( 'keyring-twitter-importer-throttled', __( 'You have made too many requests to Twitter and have been temporarily blocked. Please try again in 1 hour (duplicate tweets will be skipped).', 'keyring' ) ); } // Make sure we have some tweets to parse if ( !is_array( $importdata ) || !count( $importdata ) ) { $this->finished = true; return; } // Get the total number of tweets we're importing if ( !empty( $importdata[0]->user->statuses_count ) ) $this->set_option( 'total', $importdata[0]->user->statuses_count ); // Parse/convert everything to WP post structs foreach ( $importdata as $post ) { // Double-check for @replies, which shouldn't be included at all if we chose to skip them if ( true == $this->get_option( 'exclude_replies' ) && null != $post->in_reply_to_screen_name ) continue; // Post title can be empty for Asides, but it makes them easier to manage if they have *something* $title_words = explode( ' ', strip_tags( $post->text ) ); $post_title = implode( ' ', array_slice( $title_words, 0, 15 ) ); // Use the first 15 words if ( count( $title_words ) > 15 ) $post_title .= '…'; // Parse/adjust dates $post_date_gmt = strtotime( $post->created_at ); $post_date_gmt = gmdate( 'Ymd H:i:s', $post_date_gmt ); $post_date = get_date_from_gmt( $post_date_gmt ); // Apply selected category $post_category = array( $this->get_option( 'category' ) ); // Clean up content a bit $post_content = $post->text; $post_content = $wpdb->escape( html_entity_decode( trim( $post_content ) ) ); // Handle entities supplied by Twitter if ( count( $post->entities->urls ) ) { foreach ( $post->entities->urls as $url ) { $post_content = str_replace( $url->url, $url->expanded_url, $post_content ); } } // Any hashtags used in a tweet will be applied to the Post as tags in WP $tags = $this->get_option( 'tags' ); if ( preg_match_all( '/(^|[(\[\s])#(\w+)/', $post_content, $tag ) ) $tags = array_merge( $tags, $tag[2] ); // Add HTML links to URLs, usernames and hashtags $post_content = make_clickable( esc_html( $post_content ) ); // Include geo Data (if provided by Twitter) if ( !empty( $post->geo ) && 'point' == strtolower( $post->geo->type ) ) $geo = array( 'lat' => $post->geo->coordinates[0], 'long' => $post->geo->coordinates[1] ); else $geo = array(); // Get a GUID from Twitter, plus other important IDs to store in postmeta later $user = $this->service->get_token()->get_meta( 'username' ); $twitter_id = $post->id_str; $twitter_permalink = "https://twitter.com/{$user}/status/{$twitter_id}"; $in_reply_to_user_id = $post->in_reply_to_user_id; $in_reply_to_screen_name = $post->in_reply_to_screen_name; $in_reply_to_status_id = $post->in_reply_to_status_id; $post_author = $this->get_option( 'author' ); $post_status = 'publish'; $twitter_raw = $post; // Build the post array, and hang onto it along with the others $this->posts[] = compact( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_status', 'post_category', 'tags', 'twitter_id', 'twitter_permalink', 'geo', 'in_reply_to_user_id', 'in_reply_to_screen_name', 'in_reply_to_status_id', 'twitter_raw' ); } } function insert_posts() { global $wpdb; $imported = 0; $skipped = 0; foreach ( $this->posts as $post ) { extract( $post ); if ( $wpdb->get_var( $wpdb->prepare( "SELECT meta_id FROM {$wpdb->postmeta} WHERE meta_key = 'twitter_id' AND meta_value = %s", $twitter_id ) ) || $post_id = post_exists( $post_title, $post_content, $post_date ) ) { // Looks like a duplicate $skipped++; } else { $post_id = wp_insert_post( $post ); if ( is_wp_error( $post_id ) ) return $post_id; if ( !$post_id ) continue; // Track which Keyring service was used add_post_meta( $post_id, 'keyring_service', $this->service->get_name() ); // Store the twitter id, reply ids etc add_post_meta( $post_id, 'twitter_id', $twitter_id ); add_post_meta( $post_id, 'twitter_permalink', $twitter_permalink ); if ( !empty( $in_reply_to_user_id ) ) add_post_meta( $post_id, 'twitter_in_reply_to_user_id', $in_reply_to_user_id ); if ( !empty( $in_reply_to_screen_name ) ) add_post_meta( $post_id, 'twitter_in_reply_to_screen_name', $in_reply_to_screen_name ); if ( !empty( $in_reply_to_status_id ) ) add_post_meta( $post_id, 'twitter_in_reply_to_status_id', $in_reply_to_status_id ); // Update Category and Tags wp_set_post_categories( $post_id, $post_category ); if ( count( $tags ) ) wp_set_post_terms( $post_id, implode( ',', $tags ) ); // Store geodata if it's available if ( !empty( $geo ) ) { add_post_meta( $post_id, 'geo_latitude', $geo['lat'] ); add_post_meta( $post_id, 'geo_longitude', $geo['long'] ); add_post_meta( $post_id, 'geo_public', 1 ); } add_post_meta( $post_id, 'raw_import_data', json_encode( $twitter_raw ) ); $imported++; } } $this->posts = array(); // Return, so that the handler can output info (or update DB, or whatever) return array( 'imported' => $imported, 'skipped' => $skipped ); } } } // end function Keyring_Twitter_Importer add_action( 'init', function() { Keyring_Twitter_Importer(); // Load the class code from above keyring_register_importer( 'twitter', 'Keyring_Twitter_Importer', plugin_basename( __FILE__ ), __( 'Import all of your tweets from Twitter as Posts (marked as "asides") in WordPress.', 'keyring' ) ); } ); 

Solutions Collecting From Web of "Hinzufügen einer benutzerdefinierten Textzeile zu PHP-Code"