Добавить Параметры в 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;
}
}
Author: Anderson Costa, 2016-11-05

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-адрес. Если нужно изменить этот код, чтоб проверить параметры и использовать ? & должным образом.

 1
Author: Ricardo Moraleida, 2016-11-06 14:46:43