Вопрос или проблема
Поскольку я новичок в PHP, у меня есть вопрос.
Я несколько дней искал в интернете, но не нашел действительно ответа. Я также пробовал несколько плагинов, но ничего не соответствует моему желанию…
Что я хочу сделать:
У меня есть два сайта на WordPress. Один – с каталогом продуктов, а другой, с точно такими же продуктами – интернет-магазин.
Я хочу создать ОДИН динамический ссылку на страницах продуктов каталога, которая загрузит продукт на интернет-магазине (втором сайте). Доменa разные, но я убедился, что названия продуктов (или постов) точно такие же на обоих сайтах.
Как мне создать одну универсальную URL, которая затем загрузит название поста с исходного сайта на целевой сайт?
Пример:
https://www.tapverhuuretten-leur.nl/product-a
Я вставил ту же ссылку на КАЖДОЙ странице продукта, под кнопкой, например, https://www.deparelevenementenservice.nl/page?name=post_title
Которая затем загружает: https://www.deparelevenementenservice.nl/product-a
С продуктом-b это должно происходить так же, но тогда выход будет: https://www.deparelevenementenservice.nl/product-b
Вкратце: я хочу создать единую ссылку для публикации на страницах продуктов, которая затем загрузит конкретный продукт на другом домене с таким же названием продукта (поста). Таким образом, product-a перенаправляется на product a на втором домене. Product-b на сайте каталога будет привязан к product-b на втором домене и так далее..
Мое желание довольно простое, но я думаю, что для этого потребуется довольно сложное программирование?
Конечно, я могу вручную связать каждый продукт со вторым доменом для каждого продукта, но это очень затратно по времени. Во-вторых: когда я обновляю продукты на сайте каталога с помощью импорта из интернет-магазина, ссылки исчезнут, и мне придется устанавливать их снова.
У меня нет представления о том, как это программировать. Простите меня, если это глупый вопрос, я новичок. Наверное, мне нужно закодировать это вокруг значения _get_the_title?
Если кто-то знает код, я буду очень благодарен.
Большое спасибо за понимание и помощь заранее.
Относительно легко добиться, просто вставьте это где-то в своем шаблоне внутри цикла:
<a href="https://www.deparelevenementenservice.nl/<?php echo $post->post_name; ?>">Текст ссылки</a>
Ответ или решение
Для создания динамического URL, который будет вести с одного сайта на другой, вы можете воспользоваться простым решением, используя PHP в WordPress. Ваши два сайта имеют одинаковые названия продуктов, что значительно упрощает задачу. Ниже представлен подробный ответ о том, как это можно реализовать.
Шаг 1: Используйте get_post_field
для получения слагов
Первым шагом будет извлечение слага (slug) поста из текущего продукта на сайте-каталоге. Слаг – это часть URL, которая идентифицирует пост (например, в URL https://www.example.com/product-a
, слаг будет product-a
). В WordPress для этого вы можете использовать функцию get_post_field()
, как показано ниже:
<?php
// Предполагаем, что у вас уже находится цикл постов
$product_slug = get_post_field('post_name', get_post());
?>
Шаг 2: Создание динамического URL
После того, как вы получили слаг, вы можете создать динамический URL для второго сайта. В данном случае, этот URL будет указывать на тот же слаг, но на другом домене.
<?php
// URL веб-магазина
$shop_url = "https://www.deparelevenementenservice.nl/$product_slug";
?>
<a href="<?php echo esc_url($shop_url); ?>">Посмотреть на сайте магазина</a>
Шаг 3: Внедрение кода в шаблон
Теперь, когда у вас есть готовый код для создания динамического URL, вам нужно внедрить его в ваш шаблон WordPress. Это можно сделать, вставив приведённый выше код в нужное место в файле шаблона, в котором выводятся продукты (возможно, это single.php
, content.php
, или любой другой файл, отвечающий за вывод содержимого продукта).
<div class="product-link">
<?php
// Получаем слаг продукта
$product_slug = get_post_field('post_name', get_post());
// Формируем URL для магазина
$shop_url = "https://www.deparelevenementenservice.nl/$product_slug";
?>
<a href="<?php echo esc_url($shop_url); ?>">Посмотреть на сайте магазина</a>
</div>
Шаг 4: SEO и пользовательский опыт
Чтобы оптимизировать ваши ссылки для поисковых систем и улучшить пользовательский опыт, убедитесь, что:
-
Атрибут
rel
: Добавьте атрибутrel="nofollow noreferrer"
к вашей ссылке, чтобы предотвратить передачу веса страницы для SEO, если это необходимо. -
Текст ссылки: Используйте осмысленный текст ссылки, который ясно указывает пользователю, куда он перейдет.
Заключение
Следуя приведённым шагам, вы сможете создать динамическую ссылку на товары между двумя сайтами WordPress. Это избавит вас от необходимости вручную обновлять ссылки при каждом импорте данных и значительно упростит управление продуктами. Код предоставлен в понятной форме и его легко адаптировать по мере роста ваших навыков в PHP.
Если у вас возникнут дополнительные вопросы или потребуется помощь с реализацией, не стесняйтесь обращаться за поддержкой к более опытным разработчикам или в сообщества WordPress.