| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- * WPSEO plugin file.
- *
- * @package WPSEO\Admin
- */
- /**
- * Represents the yoast cornerstone content.
- */
- class WPSEO_Cornerstone {
- const META_NAME = 'is_cornerstone';
- const FIELD_NAME = 'yoast_wpseo_is_cornerstone';
- /**
- * Registers the hooks.
- *
- * @return void
- */
- public function register_hooks() {
- global $pagenow;
- if ( ! $this->page_contains_cornerstone_content_field( $pagenow ) ) {
- return;
- }
- add_action( 'save_post', array( $this, 'save_meta_value' ) );
- add_filter( 'wpseo_cornerstone_post_types', array( 'WPSEO_Post_Type', 'filter_attachment_post_type' ) );
- }
- /**
- * Saves the meta value to the database.
- *
- * @param int $post_id The post id to save the meta value for.
- *
- * @return void
- */
- public function save_meta_value( $post_id ) {
- $is_cornerstone_content = $this->is_cornerstone_content();
- if ( $is_cornerstone_content ) {
- $this->update_meta( $post_id, $is_cornerstone_content );
- return;
- }
- $this->delete_meta( $post_id );
- }
- /**
- * Returns the result of the cornerstone content checkbox.
- *
- * @return bool True when checkbox is checked.
- */
- protected function is_cornerstone_content() {
- return filter_input( INPUT_POST, self::FIELD_NAME ) === 'true';
- }
- /**
- * Checks if the current page matches one of the pages that contains the cornerstone content field.
- *
- * @param string $page The page to check.
- *
- * @return bool True when the page contains the cornerstone content field.
- */
- protected function page_contains_cornerstone_content_field( $page ) {
- return WPSEO_Metabox::is_post_edit( $page );
- }
- /**
- * Updates the cornerstone content post meta with the given cornerstone content value.
- *
- * @param int $post_id The post id to save the meta value for.
- * @param bool $is_cornerstone_content Whether or not the post should be considered to be cornerstone content.
- *
- * @return void
- */
- protected function update_meta( $post_id, $is_cornerstone_content ) {
- WPSEO_Meta::set_value( self::META_NAME, $is_cornerstone_content, $post_id );
- }
- /**
- * Deletes the cornerstone content post meta for the given post id.
- *
- * @param int $post_id The post id to delete the cornerstone content meta value for..
- *
- * @return void
- */
- protected function delete_meta( $post_id ) {
- WPSEO_Meta::delete( self::META_NAME, $post_id );
- }
- }
|