Plugin Directory

Changeset 1460312


Ignore:
Timestamp:
07/25/2016 04:19:14 PM (10 years ago)
Author:
ChazUK
Message:

Using Class instead of plain function
Added output to public custom post types

Location:
wp-api-yoast-meta/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • wp-api-yoast-meta/trunk/plugin.php

    r1458070 r1460312  
    55 * Author: Charlie Francis
    66 * Author URI: https://github.com/ChazUK
    7  * Version: 0.1.1
     7 * Version: 1.1.0
    88 * Plugin URI: https://github.com/ChazUK/wp-api-yoast-seo
    99 */
    1010
    11 function wp_api_encode_yoast($post, $field_name, $request) {
    12     $yoastMeta = array(
    13         'yoast_wpseo_focuskw' => get_post_meta($post['id'], '_yoast_wpseo_focuskw', true),
    14         'yoast_wpseo_title' => get_post_meta($post['id'], '_yoast_wpseo_title', true),
    15         'yoast_wpseo_metadesc' => get_post_meta($post['id'], '_yoast_wpseo_metadesc', true),
    16         'yoast_wpseo_linkdex' => get_post_meta($post['id'], '_yoast_wpseo_linkdex', true),
    17         'yoast_wpseo_metakeywords' => get_post_meta($post['id'], '_yoast_wpseo_metakeywords', true),
    18         'yoast_wpseo_meta-robots-noindex' => get_post_meta($post['id'], '_yoast_wpseo_meta-robots-noindex', true),
    19         'yoast_wpseo_meta-robots-nofollow' => get_post_meta($post['id'], '_yoast_wpseo_meta-robots-nofollow', true),
    20         'yoast_wpseo_meta-robots-adv' => get_post_meta($post['id'], '_yoast_wpseo_meta-robots-adv', true),
    21         'yoast_wpseo_canonical' => get_post_meta($post['id'], '_yoast_wpseo_canonical', true),
    22         'yoast_wpseo_redirect' => get_post_meta($post['id'], '_yoast_wpseo_redirect', true),
    23         'yoast_wpseo_opengraph-title' => get_post_meta($post['id'], '_yoast_wpseo_opengraph-title', true),
    24         'yoast_wpseo_opengraph-description' => get_post_meta($post['id'], '_yoast_wpseo_opengraph-description', true),
    25         'yoast_wpseo_opengraph-image' => get_post_meta($post['id'], '_yoast_wpseo_opengraph-image', true),
    26         'yoast_wpseo_twitter-title' => get_post_meta($post['id'], '_yoast_wpseo_twitter-title', true),
    27         'yoast_wpseo_twitter-description' => get_post_meta($post['id'], '_yoast_wpseo_twitter-description', true),
    28         'yoast_wpseo_twitter-image' => get_post_meta($post['id'], '_yoast_wpseo_twitter-image', true)
    29     );
     11class WPAPIYoastMeta {
    3012
    31     return (array) $yoastMeta;
     13    function __construct() {
     14        add_action('rest_api_init', array($this, 'add_yoast_data'));
     15    }
     16
     17    function add_yoast_data() {
     18        // Posts
     19        register_api_field( 'post',
     20            'yoast_meta',
     21            array(
     22                'get_callback'    => array( $this, 'wp_api_encode_yoast' ),
     23                'update_callback' => null,
     24                'schema'          => null,
     25            )
     26        );
     27
     28        // Pages
     29        register_api_field( 'page',
     30            'yoast_meta',
     31            array(
     32                'get_callback'    => array( $this, 'wp_api_encode_yoast' ),
     33                'update_callback' => null,
     34                'schema'          => null,
     35            )
     36        );
     37
     38        // Public custom post types
     39        $types = get_post_types(array(
     40            'public' => true,
     41            '_builtin' => false
     42        ));
     43        foreach($types as $key => $type) {
     44            register_api_field( $type,
     45                'yoast_meta',
     46                array(
     47                    'get_callback'    => array( $this, 'wp_api_encode_yoast' ),
     48                    'update_callback' => null,
     49                    'schema'          => null,
     50                )
     51            );
     52        }
     53    }
     54
     55    function wp_api_encode_yoast($post, $field_name, $request) {
     56        $yoastMeta = array(
     57            'yoast_wpseo_focuskw' => get_post_meta($post['id'], '_yoast_wpseo_focuskw', true),
     58            'yoast_wpseo_title' => get_post_meta($post['id'], '_yoast_wpseo_title', true),
     59            'yoast_wpseo_metadesc' => get_post_meta($post['id'], '_yoast_wpseo_metadesc', true),
     60            'yoast_wpseo_linkdex' => get_post_meta($post['id'], '_yoast_wpseo_linkdex', true),
     61            'yoast_wpseo_metakeywords' => get_post_meta($post['id'], '_yoast_wpseo_metakeywords', true),
     62            'yoast_wpseo_meta-robots-noindex' => get_post_meta($post['id'], '_yoast_wpseo_meta-robots-noindex', true),
     63            'yoast_wpseo_meta-robots-nofollow' => get_post_meta($post['id'], '_yoast_wpseo_meta-robots-nofollow', true),
     64            'yoast_wpseo_meta-robots-adv' => get_post_meta($post['id'], '_yoast_wpseo_meta-robots-adv', true),
     65            'yoast_wpseo_canonical' => get_post_meta($post['id'], '_yoast_wpseo_canonical', true),
     66            'yoast_wpseo_redirect' => get_post_meta($post['id'], '_yoast_wpseo_redirect', true),
     67            'yoast_wpseo_opengraph-title' => get_post_meta($post['id'], '_yoast_wpseo_opengraph-title', true),
     68            'yoast_wpseo_opengraph-description' => get_post_meta($post['id'], '_yoast_wpseo_opengraph-description', true),
     69            'yoast_wpseo_opengraph-image' => get_post_meta($post['id'], '_yoast_wpseo_opengraph-image', true),
     70            'yoast_wpseo_twitter-title' => get_post_meta($post['id'], '_yoast_wpseo_twitter-title', true),
     71            'yoast_wpseo_twitter-description' => get_post_meta($post['id'], '_yoast_wpseo_twitter-description', true),
     72            'yoast_wpseo_twitter-image' => get_post_meta($post['id'], '_yoast_wpseo_twitter-image', true)
     73        );
     74
     75        return (array) $yoastMeta;
     76    }
     77
    3278}
    3379
    34 add_action('rest_api_init', function() {
    35     register_api_field('page', 'yoast_meta', array(
    36         'get_callback'    => 'wp_api_encode_yoast',
    37         'update_callback' => null,
    38         'schema'          => null,
    39     ));
    40 });
    41 
    42 add_action('rest_api_init', function() {
    43     register_api_field('post', 'yoast_meta', array(
    44         'get_callback'    => 'wp_api_encode_yoast',
    45         'update_callback' => null,
    46         'schema'          => null,
    47     ));
    48 });
     80$WPAPIYoastMeta = new WPAPIYoastMeta();
  • wp-api-yoast-meta/trunk/readme.txt

    r1458073 r1460312  
    2222== Changelog ==
    2323
     24= 1.1 =
     25
     26Using Class instead of plain function
     27Added output to public custom post types
     28
    2429= 1.0 =
    2530
Note: See TracChangeset for help on using the changeset viewer.