Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * @package Jetpack_Test
  5. * @version 1.0
  6. */
  7. /*
  8. Plugin Name: Jetpack Test
  9. Description: Allows certain Jetpack modules that would otherwise require a connection to WordPress.com to be run in a local development environment.
  10. Author: Del Putnam
  11. Version: 1.0
  12. */
  13.  
  14. /**
  15. * Modify Jetpack module properties for testing/development
  16. *
  17. * @param array $mod Module to look at modifying the properties of.
  18. * @return boolean
  19. */
  20. function jp_amp_module_override( $mod ) {
  21. switch ( $mod['name'] ) {
  22. case 'Related Posts':
  23. $mod['requires_connection'] = false;
  24. break;
  25. }
  26. return $mod;
  27. }
  28. add_filter( 'jetpack_get_module', 'jp_amp_module_override' );
  29.  
  30. /**
  31. * Return post meta so that Jetpack related posts display
  32. *
  33. * @param type $metadata
  34. * @param type $object_id
  35. * @param type $meta_key
  36. * @param type $single
  37. * @return array
  38. */
  39. function jp_amp_related_posts_meta( $metadata, $object_id, $meta_key, $single ) {
  40. if ( isset( $meta_key ) && '_jetpack_related_posts_cache' === $meta_key ) {
  41. $body = array(
  42. 'size' => 3,
  43. 'filter' => array( 'and' => array( 0 => array( 'term' => array( 'post_type' => 'post' ) ) ) ),
  44. );
  45. $cache_key = md5( serialize( $body ) );
  46. $metadata = array();
  47.  
  48. $args = array(
  49. 'posts_per_page' => 3,
  50. 'offset' => 0,
  51. 'orderby' => 'date',
  52. 'order' => 'DESC',
  53. 'post_type' => 'post',
  54. 'post_status' => 'publish',
  55. 'suppress_filters' => true
  56. );
  57. $posts_array = get_posts( $args );
  58.  
  59. $payload = array();
  60. foreach( $posts_array as $post ) {
  61. $payload[] = array( 'id' => $post->ID );
  62. }
  63. $metadata[0][ $cache_key ] = array(
  64. 'expires' => time() + 1000,
  65. 'payload' => $payload,
  66. );
  67.  
  68. return $metadata;
  69. }
  70. return $metadata;
  71. }
  72. add_filter( 'get_post_metadata', 'jp_amp_related_posts_meta', 100, 4 );
  73.  
  74. /**
  75. * Set the Jetpack 'enabled' option to true so we can test it.
  76. *
  77. * @param array $options The list of Jetpack's Related Post options.
  78. * @return array The modified options list.
  79. */
  80. function jp_amp_relatedposts_options_override( $options ) {
  81. $options['enabled'] = true;
  82. return $options;
  83. }
  84. add_filter( 'jetpack_relatedposts_filter_options', 'jp_amp_relatedposts_options_override' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement