WordPress.org

Make WordPress Core

Ticket #100: 0000100-post_keywords.php

File 0000100-post_keywords.php, 2.2 KB (added by steph-tara, 9 years ago)
Line 
1<?php
2/*
3Plugin Name: Post Keywords
4Version: 0.5
5Plugin URI: http://wordpress.org/
6Description:  Conveniently add keywords to a post.
7Author: Ryan Boren
8Author URI: http://boren.nu/
9*/
10
11function build_post_keywords_ui() {
12    echo '<fieldset id="postkeywordsdiv">';
13    echo '<legend>Keywords</legend>';
14    echo '<input type="text" id="post_keywords" name="post_keywords" value="' . get_post_keywords() . '" />';
15    echo '</fieldset>';
16}
17
18function position_post_keywords_ui() {
19    echo '<script language="JavaScript" type="text/javascript">';
20
21        if ($_GET['action'] == 'edit' || get_settings('advanced_edit')) {
22                echo 'var submitButtonPara = document.getElementById("save").parentNode;';
23        } else {
24                echo 'var submitButtonPara = document.getElementById("saveasdraft").parentNode;';
25        }
26   
27    echo 'var PostKeywords = document.getElementById("postkeywordsdiv");
28                submitButtonPara.parentNode.insertBefore(PostKeywords, submitButtonPara);
29                </script>
30                ';   
31}
32
33function get_post_keywords($post = '') {
34    if (! $post) {
35        $post = $_GET['post'];
36    }
37
38    $metadata = has_meta($post);
39
40    if (isset($metadata)) {
41        foreach($metadata as $meta) {
42            if($meta['meta_key'] == 'keywords') {
43            return $meta['meta_value'];
44            }
45        }
46    }
47
48    return '';
49}
50
51function get_post_keywords_id($post) {
52    if (! $post) {
53        $post = $_GET['post'];
54    }
55
56    $metadata = has_meta($post);
57
58    if (isset($metadata)) {
59        foreach($metadata as $meta) {
60            if($meta['meta_key'] == 'keywords') {
61            return $meta['meta_id'];
62            }
63        }
64    }
65
66    return '';
67}
68
69function save_post_keywords($post) {
70    global $wpdb;
71    $meta_id = get_post_keywords_id($post);
72    echo "Saving keywords: " . $_POST['post_keywords'] . "<br />";
73    if ($meta_id != '') {
74        update_meta($meta_id, 'keywords', $_POST['post_keywords']);
75    } else {
76                $wpdb->query("INSERT INTO $wpdb->postmeta
77                                          (post_id,meta_key,meta_value)
78                                          VALUES ('$post','keywords','$value')");
79    }
80
81    return $post;
82}
83
84add_action('admin_footer', 'build_post_keywords_ui');
85add_action('admin_footer', 'position_post_keywords_ui');
86add_action('edit_post', 'save_post_keywords');
87add_action('publish_post', 'save_post_keywords', 5);
88?>