Добавить Параметры в URL-адрес Wordpress
у меня есть плагин, который управляет ссылки в Wordpress, изображения и тексты, делая вид, что статей, все внешние ссылки. (Тип Taboola).
Я хотел бы добавить в конце Ссылки на некоторые параметры. Ex:
Link ==> outrosite.с.br
и Я хочу добавить сейчас следующим образом:
Link ==> outrosite.с.br?src=urldinamicadowordpress
Таким образом, я могу узнать источник этих кликов и по какой статье преобразование больше кликов.
и Если можно, еще добавить, если click пришел в mobile или Desktop
Link ==> outrosite.с.br?src=urldinamicadowordpress|mobile
Link ==> outrosite.с.br?src=urldinamicadowordpress|desktop
Код Перенаправления
add_action('init', 'count_clicks');
function count_clicks()
{
global $wpdb;
if(isset($_GET['action']) && $_GET['action'] == 'count') {
$id = $_GET['id'];
$tableName = $wpdb->prefix . 'post_related_meta';
$meta = $wpdb->get_results($wpdb->prepare("select meta_clicks, meta_link from $tableName where meta_id = %s", $id));
$meta = $meta[0];
$wpdb->update($wpdb->prefix."post_related_meta", array(
'meta_clicks' => (int)$meta->meta_clicks+1,
), array(
'meta_id' => $_GET['id']
),
array(
'%d'
)
);
$redirect = $meta->meta_link;
header("Location: $redirect");
exit;
}
}
1 answers
, Как это сделать, зависит немного о том, как создаются ссылки на внешние статьи. Если у вас есть контроль над ними, просто положить что-то вроде:
$url_dinamica = $_REQUEST['REQUEST_URI'];
$query = http_build_query( array( 'src' => $url_dinamica ) );
И размещать в конце ссылку:
<a href="http://example.com/?<?php echo esc_attr( $query ); ?>">Link</a>
// imprime http://example.com/?src=seusite.com.br/pagina/do/link
, различие между mobile и desktop вы можете использовать функцию родной wp_is_mobile()
$url_dinamica = $_SERVER['REQUEST_URI'];
$url_dinamica .= '|' . ( wp_is_mobile() ? 'mobile' : 'desktop' );
Это решение работает, только если нет полного кэширования страниц. Если вам понадобится решение javascript.
EDIT
, Обновляя в соответствии с кодом добавлена. Для запуска достаточно просто поставить запрос в конце $meta->meta_link;
:
$redirect = rtrim( $meta->meta_link, '/') .'/?'. $query;
header("Location: $redirect");
exit();
rtrim()
там служит не только для обеспечения, что мы не будем иметь штрих-повторяющиеся в конце URL-адреса. Я, учитывая, что $meta->meta_link не имеет параметров, это всегда простой URL-адрес. Если нужно изменить этот код, чтоб проверить параметры и использовать ?
&
должным образом.