set new link as permalink

时间:2014-07-04 作者:user3449454

我将外部链接存储在变量中$extlink 根据帖子中的不同选择生成。

如何将永久链接设置为$extlink因此,当我点击帖子时,它会通过程序/代码将我带到链接

    <?php while (have_posts()) : the_post(); ?>             

                    <div class="bookindex">

                     <?php the_title();?>

                     <?php 
                        $ext1 = get_field(\'bookzone\');
                        $extlink="http://".$ext1.".com";
                        add_filter( \'post_link\', \'external_permalink\', 10, 2 ); 
                        function external_permalink( $link, $post )
                        {

                             $meta = get_post_meta( $post->ID, $extlink , TRUE );
                             $url  = esc_url( filter_var( $meta, FILTER_VALIDATE_URL ) );

                             return $url ? $url : $link;
                        }
                    ?>      

                </div>
<?php endwhile; ?>

1 个回复
SO网友:P-S

我认为这里有问题:

$meta = get_post_meta( $post->ID, $extlink , TRUE );
这是功能:

get_post_meta(int$post\\u id,string$key=“”,bool$single=false)

您正在将$extlink设置为$key 参数,但它真的是一个元键?根据您的解释,这似乎是bookzone 钥匙

如果上述内容有意义,则在函数内部修复以下内容:

$meta = get_post_meta( $post->ID, \'bookzone\', TRUE );
正如Pat J所说,还要拆下add_filter 以及function 自身在while循环之外。设置此特定筛选器时once, 每当在Wordpress循环中调用permalink时,Wordpress将执行过滤器的功能。

结束

相关推荐

如何在unctions.php中正确添加Java脚本

我想删除一些看起来很难看的箭头,它们是WooCommerce中购物车按钮上的标准箭头。为了实现这一点,我找到了添加以下代码的技巧,当文档加载后,这些代码应该会删除箭头。我想我会把它放在我的函数中。php?我该怎么做呢?$(document).ready(function() { $(\".woocommerce-cart\").html(function(i, val) { return val.replace(\" →\", \"\"); });