PATH:
home
/
letacommog
/
lenazen
/
wp-content
/
plugins
/
wordpress-seo-premium
/
admin
<?php /** * WPSEO plugin file. * * @package WPSEO\Admin\Links */ /** * Represents the link count storage. */ class WPSEO_Meta_Storage implements WPSEO_Installable { /** * Table name for the meta storage. * * @var string */ const TABLE_NAME = 'yoast_seo_meta'; /** * @var WPSEO_Database_Proxy */ protected $database_proxy; /** * @deprecated 7.4 * * @var null|string */ protected $table_prefix; /** * Initializes the database table. * * @param string $table_prefix Optional. Deprecated argument. */ public function __construct( $table_prefix = null ) { if ( $table_prefix !== null ) { _deprecated_argument( __METHOD__, 'WPSEO 7.4' ); } $this->database_proxy = new WPSEO_Database_Proxy( $GLOBALS['wpdb'], self::TABLE_NAME, true ); } /** * Returns the table name to use. * * @return string The table name. */ public function get_table_name() { return $this->database_proxy->get_table_name(); } /** * Creates the database table. * * @return boolean True if the table was created, false if something went wrong. */ public function install() { return $this->database_proxy->create_table( array( 'object_id bigint(20) UNSIGNED NOT NULL', 'internal_link_count int(10) UNSIGNED NULL DEFAULT NULL', 'incoming_link_count int(10) UNSIGNED NULL DEFAULT NULL', ), array( 'UNIQUE KEY object_id (object_id)', ) ); } /** * Saves the link count to the database. * * @param int $meta_id The id to save the link count for. * @param array $meta_data The total amount of links. */ public function save_meta_data( $meta_id, array $meta_data ) { $where = array( 'object_id' => $meta_id ); $saved = $this->database_proxy->upsert( array_merge( $where, $meta_data ), $where ); if ( $saved === false ) { WPSEO_Meta_Table_Accessible::set_inaccessible(); } } /** * Updates the incoming link count. * * @param array $post_ids The posts to update the incoming link count for. * @param WPSEO_Link_Storage $storage The link storage object. */ public function update_incoming_link_count( array $post_ids, WPSEO_Link_Storage $storage ) { global $wpdb; $query = $wpdb->prepare( ' SELECT COUNT( id ) AS incoming, target_post_id AS post_id FROM ' . $storage->get_table_name() . ' WHERE target_post_id IN(' . implode( ',', array_fill( 0, count( $post_ids ), '%d' ) ) . ') GROUP BY target_post_id', $post_ids ); $results = $wpdb->get_results( $query ); $post_ids_non_zero = array(); foreach ( $results as $result ) { $this->save_meta_data( $result->post_id, array( 'incoming_link_count' => $result->incoming ) ); $post_ids_non_zero[] = $result->post_id; } $post_ids_zero = array_diff( $post_ids, $post_ids_non_zero ); foreach ( $post_ids_zero as $post_id ) { $this->save_meta_data( $post_id, array( 'incoming_link_count' => 0 ) ); } } }
[+]
..
[-] class-admin-utils.php
[edit]
[-] class-meta-columns.php
[edit]
[-] class-bulk-editor-list-table.php
[edit]
[-] ajax.php
[edit]
[-] class-export.php
[edit]
[-] class-admin-asset-manager.php
[edit]
[+]
taxonomy
[-] class-extension-manager.php
[edit]
[-] class-expose-shortlinks.php
[edit]
[-] class-yoast-network-admin.php
[edit]
[-] class-admin-asset-yoast-components-l10n.php
[edit]
[-] class-customizer.php
[edit]
[-] class-multiple-keywords-modal.php
[edit]
[+]
menu
[-] class-social-admin.php
[edit]
[+]
capabilities
[-] class-option-tab.php
[edit]
[-] class-admin.php
[edit]
[-] class-product-upsell-notice.php
[edit]
[-] class-database-proxy.php
[edit]
[+]
filters
[-] class-admin-asset-dev-server-location.php
[edit]
[-] class-bulk-description-editor-list-table.php
[edit]
[+]
watchers
[-] class-help-center.php
[edit]
[-] interface-collection.php
[edit]
[+]
config-ui
[+]
notifiers
[-] class-plugin-availability.php
[edit]
[-] class-yoast-columns.php
[edit]
[+]
ajax
[-] class-premium-upsell-admin-block.php
[edit]
[+]
import
[-] class-yoast-notification-center.php
[edit]
[-] class-plugin-compatibility.php
[edit]
[+]
tracking
[-] class-remote-request.php
[edit]
[-] class-yoast-network-settings-api.php
[edit]
[-] class-recalculate-scores.php
[edit]
[-] class-admin-media-purge-notification.php
[edit]
[+]
formatter
[-] class-admin-init.php
[edit]
[+]
help_center
[-] class-admin-asset-seo-location.php
[edit]
[+]
google_search_console
[-] index.php
[edit]
[-] class-help-center-item.php
[edit]
[-] class-bulk-title-editor-list-table.php
[edit]
[-] class-extension.php
[edit]
[-] class-admin-gutenberg-compatibility-notification.php
[edit]
[+]
links
[-] class-gutenberg-compatibility.php
[edit]
[-] class-plugin-conflict.php
[edit]
[+]
endpoints
[-] class-admin-user-profile.php
[edit]
[+]
metabox
[-] courses-overview.php
[edit]
[-] class-yoast-plugin-conflict.php
[edit]
[+]
roles
[-] class-asset.php
[edit]
[-] class-yoast-notification.php
[edit]
[+]
recalculate
[-] class-meta-table-accessible.php
[edit]
[-] class-admin-recommended-replace-vars.php
[edit]
[+]
pages
[-] class-license-page-manager.php
[edit]
[+]
exceptions
[-] class-my-yoast-proxy.php
[edit]
[+]
services
[-] class-admin-asset-location.php
[edit]
[-] class-admin-asset-analysis-worker-location.php
[edit]
[-] class-yoast-alerts.php
[edit]
[-] class-premium-popup.php
[edit]
[-] class-config.php
[edit]
[-] class-meta-storage.php
[edit]
[-] class-my-yoast-route.php
[edit]
[-] class-add-keyword-modal.php
[edit]
[-] class-yoast-form.php
[edit]
[-] class-extensions.php
[edit]
[+]
statistics
[-] class-paper-presenter.php
[edit]
[+]
listeners
[-] class-admin-help-panel.php
[edit]
[-] interface-installable.php
[edit]
[-] class-option-tabs-formatter.php
[edit]
[-] class-collector.php
[edit]
[-] class-suggested-plugins.php
[edit]
[-] class-primary-term-admin.php
[edit]
[+]
views
[+]
onpage
[-] class-admin-editor-specific-replace-vars.php
[edit]
[-] class-option-tabs.php
[edit]
[-] class-keyword-synonyms-modal.php
[edit]
[-] class-schema-person-upgrade-notification.php
[edit]
[-] class-yoast-dashboard-widget.php
[edit]