Add hashtags support to WordTwitSince sinimulan ko ang blog na ito Ako ay gumagamit ng WordTwit sa pamamagitan ng BraveNewCode (sila ran out of puwang wari). Ito ay isang simpleng gamitin ang plugin para sa Wordpress na-update ang iyong Twitter status kapag nag-publish ka ng isang bagong artikulo blog.

Maaari mong ipasadya ang iyong mensahe at gamitin ang [pamagat] upang palitan ito sa aktwal na pamagat ng artikulo at [link] na may isang (pinaikling) URL sa article. Kaya't maaari mong gawin ng isang bagay tulad ng “Bagong blog entry ‘[pamagat]‘ nakapaskil sa [link]“ – Well, marahil gusto mo nais na itago ito bilang maikling panahon bagaman, ngunit ito ay upang bigyan ka ng isang ideya.

Kaya ibinigay na maaari mong ipasadya ang iyong mensahe, maaari mo ring idagdag ang isa o dalawang hashtags. Subalit ang mga ito ay tapos na ang lahat ng mano-mano, Halimbawa “Blog [pamagat] – [link] # Blog” ay ano ako ay gamit ang aking sarili.

Ngunit ang # Blog hashtag ay hindi tunay na bagay ng isang pulutong ng mga tao ay para sa paghahanap. Kaya bakit hindi muling gamitin ang mga tag na ako ay mayroon nang nadagdag sa aking artikulo na may Wordpress? Tulad ng artikulong ito para sa mga halimbawa, ay hindi maaaring gamitin ko nito pagpapasadya tag bilang ng mga # pagpapasadya hashtag sa aking Twitter i-update? Well, with some modifications to WordTwit, posible. Narito kung paano.

The modification involves editing the file wordtwit.php, which can be found in your /wp-content/plugin/wordtwit/ direktoryo ng. The first part is very minor and simply involves moving a line of code a little further up. You need to look for $post_tags = get_the_tags();” near line 484 (in version 2.2.4 of WordTwit):

...(snip)...
        $can_tweet = true;

        // check tags
        if ( count( $wt_tags ) ) {

            // we have a tag or a category
            $new_taxonomy = array();

            $post_tags = get_the_tags();
            if ( $post_tags ) {
                foreach ( $post_tags as $some_tag ) {
                    $new_taxonomy[] = strtolower( $some_tag->name );
                }
            }
...(snip)...

Move the  $post_tags = get_the_tags();” line up and place it under the $can_tweet = true;” linya. This is done to avoid calling the same function twice. Admittedly, it’s a minor speed hurdle, but if you get into this habit of doing this throughout code, it’ll eventually speed things up. So now the above code will look like this:

...(snip)...
        $can_tweet = true;
        $post_tags = get_the_tags(); // <-- The line was moved here

        // check tags
        if ( count( $wt_tags ) ) {

            // we have a tag or a category
            $new_taxonomy = array();               

            if ( $post_tags ) {
                foreach ( $post_tags as $some_tag ) {
                    $new_taxonomy[] = strtolower( $some_tag->name );
                }
            }
...(snip)...

Up for the next bit.  At around line 515 of the same file (wordtwit.php) you need to inject the code that will handle the WordPress tags to Twitter hashtag conversion. The actual line number will depend on the version of WordTwit you’re using (in this example, Bersyon 2.2.4) so I have included a snippet of the existing code as a reference where to add it. The actual code will be commented accordingly:

...(snip)...
            $message = $settings['message'];
            $message = str_replace( '[title]', $post->post_title, $message );

            global $post;
            $message = str_replace( '[link]', wordtwit_make_tinyurl( get_permalink(), true, $post->ID ), $message );

// !!! Wordpress tag to Twitter hashtag conversion STARTS HERE >>>

            if ( $post_tags && strpos($message, '[tags]') !== false ) {
                $tags_to_add = '';

                // What's the message length without this tag?
                $message_len = strlen($message) - 6;

                foreach ( $post_tags as $some_tag ) {
                    $tag_len = strlen($some_tag->name) + 2;

                    // Can we add this tag within the 140 char constraint? (accounts for hashtag and spacer)
                    if ( $tag_len + $message_len <= 140 ) {
                        $tags_to_add .= '#'.$some_tag->name.' ';
                        $message_len += $tag_len;
                    } else {
                        // Nope, we're done
                        break;
                    }
                }

                $tags_to_add = rtrim($tags_to_add);
                $message = str_replace('[tags]', $tags_to_add, $message);
            }

// <<< Wordpress tag to Twitter hashtag conversion ENDS HERE !!!   

            $twit_username = $settings['username'];
            $twit_password = $settings['password'];

            twit_update_status( $twit_username, $twit_password, $message );
...(snip)...

Save the file and you’re done with the modification!

Now you can customize your WordTwit message with three replaceable  tags: [pamagat], [link] and the new one [tags]. When you specify [tags] in your custom message, WordTwit will use the tags you’re using from WordPress and convert them to a Twitter hashtag. It will try to fit in as many as possible, up to a limit of 140 characters. If you have 10 WordPress tags but there’s only room for 3, then only the first 3 hashtags will appear in your Twitter status update. And obviously all 10 will appear if there’s room for them.

Related Posts:

  1. Mas mabilis WP Super Cache sa nginx
  2. WP bumati Box autohide tampok
  3. WP Flickr Background bersyon 1.0.2 (Beta) magagamit
  4. Lifestream for December 15th
  5. Paggamit ng Espesyal na WordPress Translations