ProShell v2.0
Dashboard
Server Info
Server: 158.106.128.192
PHP: 8.2.33
home
planet5
public_html
bansibaba.com
2026-09-15 23:05:49
Editing: premium-orphaned-post-filter.php
Cancel
Save Changes
<?php /** * WPSEO Premium plugin file. * * @package WPSEO\Premium */ use Yoast\WP\SEO\Config\Migration_Status; /** * Registers the filter for filtering posts by orphaned content. */ class WPSEO_Premium_Orphaned_Post_Filter extends WPSEO_Abstract_Post_Filter { /** * Returns the query value this filter uses. * * @return string The query value this filter uses. */ public function get_query_val() { return 'orphaned'; } /** * Registers the hooks when the link feature is enabled. */ public function register_hooks() { if ( ! YoastSEO()->classes->get( Migration_Status::class )->is_version( 'free', WPSEO_VERSION ) ) { return; } if ( WPSEO_Premium_Orphaned_Content_Utils::is_feature_enabled() ) { parent::register_hooks(); } } /** * Returns a text explaining this filter. * * @return string|null The explanation or null if the current post stype is unknown. */ protected function get_explanation() { $post_type_object = get_post_type_object( $this->get_current_post_type() ); if ( $post_type_object === null ) { return null; } $unprocessed = WPSEO_Premium_Orphaned_Content_Utils::has_unprocessed_content(); $can_recalculate = WPSEO_Capability_Utils::current_user_can( 'wpseo_manage_options' ); $learn_more = sprintf( /* translators: %1$s expands to the link to an article to read more about orphaned content, %2$s expands to </a> */ __( '%1$sLearn more about orphaned content%2$s.', 'wordpress-seo-premium' ), '<a href="' . WPSEO_Shortlinker::get( 'https://yoa.st/1ja' ) . '" target="_blank">', '</a>' ); if ( $unprocessed && ! $can_recalculate ) { return sprintf( /* translators: %1$s: plural form of the current post type, %2$s: a Learn more about link */ __( 'Ask your SEO Manager or Site Administrator to count links in all texts, so we can identify orphaned %1$s. %2$s', 'wordpress-seo-premium' ), strtolower( $post_type_object->labels->name ), $learn_more ); } if ( $unprocessed ) { return sprintf( /* translators: %1$s expands to link to the recalculation option, %2$s: anchor closing, %3$s: plural form of the current post type, %4$s: a Learn more about link */ __( '%1$sClick here%2$s to index your links, so we can identify orphaned %3$s. %4$s', 'wordpress-seo-premium' ), '<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_tools&reIndexLinks=1' ) ) . '">', '</a>', strtolower( $post_type_object->labels->name ), $learn_more ); } return sprintf( /* translators: %1$s: plural form of the current post type, %2$s: a Learn more about link */ __( '\'Orphaned content\' refers to %1$s that have no inbound links, consider adding links towards these %1$s. %2$s', 'wordpress-seo-premium' ), strtolower( $post_type_object->labels->name ), $learn_more ); } /** * Modifies the query based on the seo_filter variable in $_GET. * * @param string $where Query variables. * * @return string The modified query. */ public function filter_posts( $where ) { if ( $this->is_filter_active() ) { $where .= $this->get_where_filter(); $where .= $this->filter_published_posts(); } return $where; } /** * Returns the where clause to use. * * @return string The where clause. */ protected function get_where_filter() { global $wpdb; if ( WPSEO_Premium_Orphaned_Content_Utils::has_unprocessed_content() ) { // Hide all posts, because we cannot tell anything for certain. return 'AND 1 = 0'; } $subquery = WPSEO_Premium_Orphaned_Post_Query::get_orphaned_content_query(); return ' AND ' . $wpdb->posts . '.ID IN ( ' . $subquery . ' ) '; } /** * Adds a published posts filter so we don't show unpublished posts in the orphaned pages results. * * @return string A published posts filter. */ protected function filter_published_posts() { global $wpdb; return " AND {$wpdb->posts}.post_status = 'publish' AND {$wpdb->posts}.post_password = ''"; } /** * Returns the label for this filter. * * @return string The label for this filter. */ protected function get_label() { static $label; if ( $label === null ) { $label = __( 'Orphaned content', 'wordpress-seo-premium' ); } return $label; } /** * Returns the total amount of articles that are orphaned content. * * @return int */ protected function get_post_total() { global $wpdb; static $count; if ( WPSEO_Premium_Orphaned_Content_Utils::has_unprocessed_content() ) { return '?'; } if ( $count === null ) { $subquery = WPSEO_Premium_Orphaned_Post_Query::get_orphaned_content_query(); $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(ID) FROM `{$wpdb->posts}` WHERE ID IN ( $subquery ) AND post_status = 'publish' AND post_password = '' AND post_type = %s", $this->get_current_post_type() ) ); $count = (int) $count; } return $count; } /** * Returns the post types to which this filter should be added. * * @return array The post types to which this filter should be added. */ protected function get_post_types() { $orphaned_content_support = new WPSEO_Premium_Orphaned_Content_Support(); return $orphaned_content_support->get_supported_post_types(); } }
Upload Files
Cancel
Upload
Create New
Cancel
Create
Change Permissions
Cancel
Save
Change Date
Cancel
Save
Rename Item
Cancel
Save
Confirm Delete
Are you sure you want to delete the selected items?
Cancel
Delete