强制Jetpack在HTTPS网站上使用og:URL和http

时间:2016-07-29 作者:Tal Galili

我将我的网站从http改为https,但我希望保留我在facebook上的喜好。从我读到的内容来看,我应该使用og:url元标记,以便facebook知道如何修复该页面上的赞。我尝试了以下代码,但它无法在jetpack中将我的URL从https更改为http。有什么建议吗?

function https_to_http_url( $url ) {
    $url = str_replace(\'https://\', \'http://\', $url );
    return $url;
}


function jetpack_og_url_https_to_http( $tags ) {
    // unset( $tags[\'og:url\'] );

    $tags[\'og:url\'] = https_to_http_url($tags[\'og:url\']);
    return $tags;
}
add_filter( \'jetpack_open_graph_tags\', \'jetpack_og_url_https_to_http\' );

1 个回复
最合适的回答,由SO网友:Mayeenul Islam 整理而成

您使用的代码应该可以工作。

顺便说一句,由于代码不起作用,最好的方法是取消设置og:url 从Jetpack上独立完成?我将获取您的代码并添加我的代码,并在必要时进行编辑:

<?php
/**
 * Change HTTPS to HTTP
 * @param  string $url Default URL.
 * @return string      Modified URL.
 * -----------------------------------
 */
function https_to_http_url( $url ) {
    $url = str_replace(\'https://\', \'http://\', $url );
    return $url;
}


/**
 * Altering Jetpack OG URL
 * We\'re going to strip out the og:url produced by Jetpack.
 * @param  array $tags  Array of Open graph tags.
 * @return array        Modified array of Open graph tags.
 * -----------------------------------
 */
function jetpack_removing_og_url( $tags ) {
    //unset completely, we\'ll produce our own
    unset( $tags[\'og:url\'] );

    return $tags;
}
add_filter( \'jetpack_open_graph_tags\', \'jetpack_removing_og_url\' );

/**
 * Add custom og:url
 * Adding our custom Open Graph URL meta tag on our own.
 * -----------------------------------
 */
function wpse233574_custom_og_url() {

    //Jetpack-way to retrieve the URL
    if ( is_home() || is_front_page() ) {
        $front_page_id = get_option( \'page_for_posts\' );
        if ( \'page\' == get_option( \'show_on_front\' ) && $front_page_id && is_home() )
            $url = get_permalink( $front_page_id );
        else
            $url = home_url( \'/\' );
    } else if ( is_author() ) {
        $author = get_queried_object();
        if ( ! empty( $author->user_url ) ) {
            $url = $author->user_url;
        } else {
            $url = get_author_posts_url( $author->ID );
        }
    } else if ( is_singular() ) {
        global $post;
        $url = get_permalink( $post->ID );
    }

    //Modifying the URL for our custom purpose
    $modified_url = https_to_http_url( $url );

    //Finally print the meta tag
    echo \'<meta property="og:url" content="\'. esc_url($modified_url) .\'" />\';
}
add_action( \'wp_head\', \'wpse233574_custom_og_url\' );

相关推荐

SSH Git-如何从repo中拉出文件夹,但不删除部署服务器上的其他目录和文件

我正处于git教育的一个阶段,我已经完善了我的。gitignore文件,这样当我从本地开发机器推送到远程存储库(该存储库恰好位于Azure上,但也可能位于github上)时,repo中的文件夹和文件正是我想要的。即:wp内容/插件/我的自定义插件。。。基本上就是这样。我不想在混合中使用wp config,也不想使用wp includes或wp admin等任何库存wp文件夹。无缓存、无wp内容/上载等。输入我的问题:当我用SSH连接到我的网站所在的Linux web服务器时,我如何执行git pull o