/** * the_content filter that will add linked posts to the bottom of the main post content * * @param $content * * @return string */ public function run($content) { /** * Wow, what's going on here?! Well, setup_postdata() sets a lot of variables but does not change the $post variable. * All checks return the main queried ID but we want to check if this specific filter call is the for the 'main' content. * The method setup_postdata() does global and set the $id variable, so we're checking that. */ global $id; // Only run on single if (!is_singular() || !is_main_query() || $id != get_queried_object_id()) { return $content; } // Allow disabling content filter if (false === apply_filters('rp4wp_append_content', true)) { return $content; } // The Post Type $post_type = get_post_type($id); // The Post Type Manager $pt_manager = new RP4WP_Post_Type_Manager(); // Check if this Post Type is installed if ($pt_manager->is_post_type_installed($post_type) && isset(RP4WP()->settings['general_' . $post_type])) { // Related Post Manager $related_post_manager = new RP4WP_Related_Post_Manager(); // The Output $output = $related_post_manager->generate_related_posts_list($id); // Add output if there is any if ('' != $output) { $content .= $output; } } // Return the content return $content; }
public function run() { global $post; // Only run on single if (is_singular() && false === apply_filters('rp4wp_disable_css', false)) { // Check if the post type is installed $pt_manager = new RP4WP_Post_Type_Manager(); if ($pt_manager->is_post_type_installed($post->post_type)) { // get component related css $component_manager = new RP4WP_Manager_Component(); $css = $component_manager->get_component_css(); // output css if ('' != $css) { echo "<style type='text/css'>" . $css . "</style>" . PHP_EOL; } } } }
public function run($new_status, $old_status, $post) { // verify this is not an auto save routine. if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } // Post status must be publish if ('publish' != $new_status) { return; } // Check if this post type is installed $pt_manager = new RP4WP_Post_Type_Manager(); if (!$pt_manager->is_post_type_installed($post->post_type)) { return; } // Save Words $related_word_manager = new RP4WP_Related_Word_Manager(); $related_word_manager->save_words_of_post($post->ID, $post->post_type); }
public function run($new_status, $old_status, $post) { // verify this is not an auto save routine. if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } // Post status must be publish if ('publish' != $new_status) { return; } // Check if this post type is installed $pt_manager = new RP4WP_Post_Type_Manager(); if (!$pt_manager->is_post_type_installed($post->post_type)) { return; } // Is automatic linking enabled? if (1 != RP4WP::get()->settings['general_' . $post->post_type]->get_option('automatic_linking')) { return; } // Check if the current post is already auto linked if (1 != get_post_meta($post->ID, RP4WP_Constants::PM_POST_AUTO_LINKED, true)) { // Post Link Manager $pl_manager = new RP4WP_Post_Link_Manager(); // Get automatic linking post amount $automatic_linking_post_amount = RP4WP::get()->settings['general_' . $post->post_type]->get_option('automatic_linking_post_amount'); // Count already linked posts $already_linked_posts = $pl_manager->get_children_count($post->ID); // Subtract already linked post count from posts to link amount if (count($already_linked_posts) > 0) { $automatic_linking_post_amount = $automatic_linking_post_amount - $already_linked_posts; } // Related Posts Manager $related_post_manager = new RP4WP_Related_Post_Manager(); // Link related posts $related_post_manager->link_related_post($post->ID, $post->post_type, $automatic_linking_post_amount); // Set the auto linked meta update_post_meta($post->ID, RP4WP_Constants::PM_POST_AUTO_LINKED, 1); } }
/** * Generate the Related Posts for WordPress children list * * @param bool $id * @param bool $output * @param string $template * @param int $limit * * @since 1.0.0 * @access public * * @return string */ function rp4wp_children($id = false, $output = true, $template = 'related-posts-default.php', $limit = -1) { // Get the current ID if ID not set if (false === $id) { $id = get_the_ID(); } // Get the post type $post_type = get_post_type($id); // Check if this Post Type is installed $pt_manager = new RP4WP_Post_Type_Manager(); if ($pt_manager->is_post_type_installed($post_type) && isset(RP4WP()->settings['general_' . $post_type])) { // related Post Manager $related_post_manager = new RP4WP_Related_Post_Manager(); // the Output $content = $related_post_manager->generate_related_posts_list($id, $template, $limit); // Output or return the content if ($output) { echo $content; } else { return $content; } } }