ajax
2 years ago
capabilities
1 year ago
endpoints
2 years ago
exceptions
3 months ago
filters
3 months ago
formatter
1 year ago
google_search_console
3 months ago
import
3 months ago
listeners
8 years ago
menu
3 months ago
metabox
3 months ago
notifiers
3 months ago
pages
3 months ago
roles
3 months ago
services
3 months ago
statistics
3 months ago
taxonomy
3 months ago
tracking
3 months ago
views
3 months ago
watchers
3 months ago
admin-settings-changed-listener.php
2 years ago
ajax.php
3 months ago
class-admin-asset-analysis-worker-location.php
3 months ago
class-admin-asset-dev-server-location.php
3 months ago
class-admin-asset-location.php
8 years ago
class-admin-asset-manager.php
3 months ago
class-admin-asset-seo-location.php
4 years ago
class-admin-editor-specific-replace-vars.php
3 months ago
class-admin-gutenberg-compatibility-notification.php
3 months ago
class-admin-help-panel.php
3 months ago
class-admin-init.php
3 months ago
class-admin-recommended-replace-vars.php
2 years ago
class-admin-user-profile.php
7 months ago
class-admin-utils.php
3 months ago
class-admin.php
3 months ago
class-asset.php
1 year ago
class-bulk-description-editor-list-table.php
3 months ago
class-bulk-editor-list-table.php
3 months ago
class-bulk-title-editor-list-table.php
3 months ago
class-collector.php
1 year ago
class-config.php
3 months ago
class-database-proxy.php
3 months ago
class-export.php
3 months ago
class-expose-shortlinks.php
7 months ago
class-gutenberg-compatibility.php
1 month ago
class-meta-columns.php
3 months ago
class-my-yoast-proxy.php
3 months ago
class-option-tab.php
4 years ago
class-option-tabs-formatter.php
3 months ago
class-option-tabs.php
2 years ago
class-paper-presenter.php
5 years ago
class-plugin-availability.php
3 months ago
class-plugin-conflict.php
2 years ago
class-premium-popup.php
1 year ago
class-premium-upsell-admin-block.php
3 months ago
class-primary-term-admin.php
3 months ago
class-product-upsell-notice.php
3 months ago
class-remote-request.php
2 years ago
class-schema-person-upgrade-notification.php
3 months ago
class-suggested-plugins.php
3 months ago
class-wincher-dashboard-widget.php
3 months ago
class-yoast-columns.php
3 months ago
class-yoast-dashboard-widget.php
3 months ago
class-yoast-form.php
3 months ago
class-yoast-input-validation.php
3 months ago
class-yoast-network-admin.php
3 months ago
class-yoast-network-settings-api.php
3 months ago
class-yoast-notification-center.php
3 months ago
class-yoast-notification.php
3 months ago
class-yoast-notifications.php
3 months ago
class-yoast-plugin-conflict.php
3 months ago
index.php
10 years ago
interface-collection.php
7 years ago
interface-installable.php
8 years ago
class-bulk-title-editor-list-table.php
90 lines
| 1 | <?php |
| 2 | /** |
| 3 | * WPSEO plugin file. |
| 4 | * |
| 5 | * @package WPSEO\Admin\Bulk Editor |
| 6 | * @since 1.5.0 |
| 7 | */ |
| 8 | |
| 9 | /** |
| 10 | * Implements table for bulk title editing. |
| 11 | */ |
| 12 | class WPSEO_Bulk_Title_Editor_List_Table extends WPSEO_Bulk_List_Table { |
| 13 | |
| 14 | /** |
| 15 | * Current type for this class will be title. |
| 16 | * |
| 17 | * @var string |
| 18 | */ |
| 19 | protected $page_type = 'title'; |
| 20 | |
| 21 | /** |
| 22 | * Settings with are used in __construct. |
| 23 | * |
| 24 | * @var array |
| 25 | */ |
| 26 | protected $settings = [ |
| 27 | 'singular' => 'wpseo_bulk_title', |
| 28 | 'plural' => 'wpseo_bulk_titles', |
| 29 | 'ajax' => true, |
| 30 | ]; |
| 31 | |
| 32 | /** |
| 33 | * The field in the database where meta field is saved. |
| 34 | * |
| 35 | * @var string |
| 36 | */ |
| 37 | protected $target_db_field = 'title'; |
| 38 | |
| 39 | /** |
| 40 | * The columns shown on the table. |
| 41 | * |
| 42 | * @return array |
| 43 | */ |
| 44 | public function get_columns() { |
| 45 | |
| 46 | $columns = [ |
| 47 | /* translators: %1$s expands to Yoast SEO */ |
| 48 | 'col_existing_yoast_seo_title' => sprintf( __( 'Existing %1$s Title', 'wordpress-seo' ), 'Yoast SEO' ), |
| 49 | /* translators: %1$s expands to Yoast SEO */ |
| 50 | 'col_new_yoast_seo_title' => sprintf( __( 'New %1$s Title', 'wordpress-seo' ), 'Yoast SEO' ), |
| 51 | ]; |
| 52 | |
| 53 | return $this->merge_columns( $columns ); |
| 54 | } |
| 55 | |
| 56 | /** |
| 57 | * Parse the title columns. |
| 58 | * |
| 59 | * @param string $column_name Column name. |
| 60 | * @param object $record Data object. |
| 61 | * @param string $attributes HTML attributes. |
| 62 | * |
| 63 | * @return string |
| 64 | */ |
| 65 | protected function parse_page_specific_column( $column_name, $record, $attributes ) { |
| 66 | |
| 67 | // Fill meta data if exists in $this->meta_data. |
| 68 | $meta_data = ( ! empty( $this->meta_data[ $record->ID ] ) ) ? $this->meta_data[ $record->ID ] : []; |
| 69 | |
| 70 | switch ( $column_name ) { |
| 71 | case 'col_existing_yoast_seo_title': |
| 72 | // @todo Inconsistent return/echo behavior R. |
| 73 | // I traced the escaping of the attributes to WPSEO_Bulk_List_Table::column_attributes. |
| 74 | // The output of WPSEO_Bulk_List_Table::parse_meta_data_field is properly escaped. |
| 75 | // phpcs:ignore WordPress.Security.EscapeOutput |
| 76 | echo $this->parse_meta_data_field( $record->ID, $attributes ); |
| 77 | break; |
| 78 | |
| 79 | case 'col_new_yoast_seo_title': |
| 80 | return sprintf( |
| 81 | '<input type="text" id="%1$s" name="%1$s" class="wpseo-new-title" data-id="%2$s" aria-labelledby="col_new_yoast_seo_title" />', |
| 82 | 'wpseo-new-title-' . $record->ID, |
| 83 | $record->ID, |
| 84 | ); |
| 85 | } |
| 86 | |
| 87 | unset( $meta_data ); |
| 88 | } |
| 89 | } |
| 90 |