| Server IP : 87.98.154.146 / Your IP : 216.73.216.165 Web Server : Apache System : Linux webm004.cluster126.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : ohklomafyi ( 52085) PHP Version : 7.4.33 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/ohklomafyi/www/wp-content/plugins/wp-seopress/src/Actions/Api/ |
Upload File : |
<?php
namespace SEOPress\Actions\Api;
if ( ! defined('ABSPATH')) {
exit;
}
use SEOPress\Core\Hooks\ExecuteHooks;
class PreviewTitleDescriptionMeta implements ExecuteHooks {
public function hooks() {
add_action('rest_api_init', [$this, 'register']);
}
/**
* @since 4.7.0
*
* @return void
*/
public function register() {
register_rest_route('seopress/v1', '/posts/(?P<id>\d+)/preview-title-description-metas', [
'methods' => 'GET',
'callback' => [$this, 'preview'],
'args' => [
'id' => [
'validate_callback' => function ($param, $request, $key) {
return is_numeric($param);
},
],
],
'permission_callback' => '__return_true',
]);
}
/**
* @since 4.7.0
*/
public function preview(\WP_REST_Request $request) {
$id = (int) $request->get_param('id');
$title = $request->get_param('title');
$description = $request->get_param('description');
$post_thumbnail = get_the_post_thumbnail_url($id, 'full') ? get_the_post_thumbnail_url($id, 'full') : '';
$post_date = '';
if (seopress_get_service('TitleOption')->getSingleCptDate($id)) {
$post_date = get_the_modified_date('M j, Y', $id) ? get_the_modified_date('M j, Y', $id) : '';
}
if (null === $title && null === $description) {
return new \WP_REST_Response([
'code' => 'error',
'code_message' => 'missing_parameters',
], 401);
}
$contextPage = seopress_get_service('ContextPage')->buildContextWithCurrentId($id);
$contextPage->setPostById($id);
$contextPage->setIsSingle(true);
$terms = get_the_terms($id, 'post_tag');
if ( ! empty($terms)) {
$contextPage->setHasTag(true);
}
$categories = get_the_terms($id, 'category');
if ( ! empty($categories)) {
$contextPage->setHasCategory(true);
}
$title = seopress_get_service('TagsToString')->replace($title, $contextPage->getContext());
$description = seopress_get_service('TagsToString')->replace($description, $contextPage->getContext());
return new \WP_REST_Response([
'title' => $title,
'description' => $description,
'post_thumbnail' => $post_thumbnail,
'post_date' => $post_date,
]);
}
}