将帖子标题添加为链接参数

时间:2019-05-25 作者:Estación Visual

我想将当前帖子的“帖子标题”作为参数传递到链接中

例如:

<a href=\'http://example.com/send-cv/?job_position=seller\'>apply to job</a>
帖子标题为“卖家”

我怎样才能做到这一点?

3 个回复
SO网友:Joel Garcia Nuño

Use this function of wordpress

get_permalink( int|WP_Post $post,bool $leavename = false )
像这样。。。

 <a href="<?=get_permalink()?>">Apply to job </a>
文件:

https://developer.wordpress.org/reference/functions/get_permalink/

无论如何,如果您想获得当前帖子的标题,请使用:

https://developer.wordpress.org/reference/functions/the_title/

SO网友:Antti Koskinen

另一种选择是使用add_query_arg() 具有get_permalink().

我想get_the_title() 可能不是这里的最佳选项,因为标题可能包含“Protected”、“Private”或其他内容,具体取决于您的设置以及自定义函数是否连接到the_title 滤器使用起来可能更好/更安全post_title 直接从post对象。

<?php global $post;
$url = add_query_arg( \'job_position\', $post->post_title, get_permalink() ); ?>
<a href="<?php echo esc_url_raw( $url ); ?>"><?php _e( "Apply to job", "text-domain" ); ?></a>
<?php // Results in http://www.domain.tld?job_position=title ?>

EDIT - shortcode example

<?php 
// Copy to (child) theme\'s functions.php
function button_shortcode( $atts ) {
  // Support for shortcode "url" parameter for overriding default hard-coded url
  // usage: [bt-apply-job url="http://www.someurl.com"]
  // Check if parameter is set and is valid url
  // defaults to hard-coded url
  // use $url = \'http://example.com/send-cv/\' if shortcode parameter support is not needed
  $url = ( ! empty( $atts[\'url\'] ) && filter_var( $url, FILTER_VALIDATE_URL ) ) ? $atts[\'url\']: \'http://example.com/send-cv/\';
  // Add post title as job_position parameter to url
  // post object is used to get unfiltered post title
  global $post;
  $url = add_query_arg( \'job_position\', $post->post_title, $url );
  // Return shortcode output, shortcode shouldn\'t echo its output
  // E.g. http://example.com/send-cv/?job_position=title
  return sprintf(
    \'<a href="%s">%s</a>\',
    esc_url_raw( $url ), // escaped url for safe output
    esc_html__( "Apply to job", "text-domain" ) // escaped translatable anchor text
  );
}
add_shortcode(\'bt-apply-job\', \'button_shortcode\');

SO网友:Estación Visual

最终我实现了我所追求的目标。

代码如下:

function button_shortcode() {       
    echo \'<a href="http://example.com/send-cv/?job_position=\'.get_the_title().\'">Apply to job</a>\';
}
add_shortcode(\'bt-apply-job\', \'button_shortcode\');