0
A
回答
2
嗨你好,它是由JS和ajax完成,只要你写标题,它会发送标题与Ajax和变成永久链接,并获得固定链接领域。我发现源代码希望它能帮助你。
可湿性粉剂管理员/包括/ post.php中线1257
function get_sample_permalink_html($id, $new_title = null, $new_slug = null) {
$post = get_post($id);
if (! $post)
return '';
list($permalink, $post_name) = get_sample_permalink($post->ID, $new_title, $new_slug);
if (current_user_can('read_post', $post->ID)) {
$ptype = get_post_type_object($post->post_type);
$view_post = $ptype->labels->view_item;
}
if ('publish' == get_post_status($post)) {
$title = __('Click to edit this part of the permalink');
} else {
$title = __('Temporary permalink. Click to edit this part.');
}
if (false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%')) {
$return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink" tabindex="-1">' . $permalink . "</span>\n";
if ('' == get_option('permalink_structure') && current_user_can('manage_options') && !('page' == get_option('show_on_front') && $id == get_option('page_on_front'))) {
$return .= '<span id="change-permalinks"><a href="options-permalink.php" class="button button-small" target="_blank">' . __('Change Permalinks') . "</a></span>\n";
}
} else {
if (function_exists('mb_strlen')) {
if (mb_strlen($post_name) > 30) {
$post_name_abridged = mb_substr($post_name, 0, 14) . '…' . mb_substr($post_name, -14);
} else {
$post_name_abridged = $post_name;
}
} else {
if (strlen($post_name) > 30) {
$post_name_abridged = substr($post_name, 0, 14) . '…' . substr($post_name, -14);
} else {
$post_name_abridged = $post_name;
}
}
$post_name_html = '<span id="editable-post-name" title="' . $title . '">' . $post_name_abridged . '</span>';
$display_link = str_replace(array('%pagename%', '%postname%'), $post_name_html, urldecode($permalink));
$pretty_permalink = str_replace(array('%pagename%', '%postname%'), $post_name, urldecode($permalink));
$return = '<strong>' . __('Permalink:') . "</strong>\n";
$return .= '<span id="sample-permalink" tabindex="-1">' . $display_link . "</span>\n";
$return .= '‎'; // Fix bi-directional text display defect in RTL languages.
$return .= '<span id="edit-slug-buttons"><a href="#post_name" class="edit-slug button button-small hide-if-no-js" onclick="editPermalink(' . $id . '); return false;">' . __('Edit') . "</a></span>\n";
$return .= '<span id="editable-post-name-full">' . $post_name . "</span>\n";
}
if (isset($view_post)) {
if('draft' == $post->post_status) {
$preview_link = set_url_scheme(get_permalink($post->ID));
/** This filter is documented in wp-admin/includes/meta-boxes.php */
$preview_link = apply_filters('preview_post_link', add_query_arg('preview', 'true', $preview_link), $post);
$return .= "<span id='view-post-btn'><a href='" . esc_url($preview_link) . "' class='button button-small' target='wp-preview-{$post->ID}'>$view_post</a></span>\n";
} else {
if (empty($pretty_permalink)) {
$pretty_permalink = $permalink;
}
$return .= "<span id='view-post-btn'><a href='" . $pretty_permalink . "' class='button button-small'>$view_post</a></span>\n";
}
}
/**
* Filter the sample permalink HTML markup.
*
* @since 2.9.0
*
* @param string $return Sample permalink HTML markup.
* @param int|WP_Post $id Post object or ID.
* @param string $new_title New sample permalink title.
* @param string $new_slug New sample permalink slug.
*/
$return = apply_filters('get_sample_permalink_html', $return, $id, $new_title, $new_slug);
return $return;
}
这是用于
可湿性粉剂管理员/ JS/post.js线706
js的// permalink
function editPermalink() {
var i, slug_value,
c = 0,
e = $('#editable-post-name'),
revert_e = e.html(),
real_slug = $('#post_name'),
revert_slug = real_slug.val(),
b = $('#edit-slug-buttons'),
revert_b = b.html(),
full = $('#editable-post-name-full');
// Deal with Twemoji in the post-name
full.find('img').replaceWith(function() { return this.alt; });
full = full.html();
$('#view-post-btn').hide();
b.html('<a href="#" class="save button button-small">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+'</a>');
b.children('.save').click(function() {
var new_slug = e.children('input').val();
if (new_slug == $('#editable-post-name-full').text()) {
b.children('.cancel').click();
return false;
}
$.post(ajaxurl, {
action: 'sample-permalink',
post_id: postId,
new_slug: new_slug,
new_title: $('#title').val(),
samplepermalinknonce: $('#samplepermalinknonce').val()
}, function(data) {
var box = $('#edit-slug-box');
box.html(data);
if (box.hasClass('hidden')) {
box.fadeIn('fast', function() {
box.removeClass('hidden');
});
}
b.html(revert_b);
real_slug.val(new_slug);
$('#view-post-btn').show();
});
return false;
});
1
它使用AJAX。 当你写这篇文章时,JS将标题发送到服务器,在那里生成永久链接并发送回页面。
+0
感谢您的信息:) –
1
永久链接不是“生成”的,对于使用永久链接,阅读关于mod_rewrite。
该链接看起来像“写你的帖子标题在这里”是一个实际的文件,而不是。
该页面会将您重定向到“posts.php”,那里正在分析appendex,然后db调用正好与那些选项一起启动。
像
"SELECT * FROM posts WHERE title LIKE `write-your-post-title-here`"
没有JS,没有AJAX。
JS用于“更新”链路的光学状态。因此,如果您点击编辑并更改帖子标题,JS会动态更新文本,您可以看到您实际输入的内容。
+1
感谢您的信息:) –
相关问题
- 1. 404 on WordPress的帖子永久链接
- 2. 更改特定帖子的WordPress的永久链接
- 3. WordPress的:自定义帖子永久链接
- 4. 使用WordPress的永久链接没有帖子
- 5. 为特定页面设置wordpress帖子的永久链接
- 6. WordPress的永久链接
- 7. WordPress的永久链接
- 8. WordPress的永久链接集
- 9. 如何更改codeigniter帖子永久链接为WordPress
- 10. 在WordPress中使用帖子Meta永久链接
- 11. WordPress ||自定义帖子类型,永久链接和数字
- 12. WP生成错误的永久链接
- 13. Wordpress wp_list_pages()与永久链接
- 14. 永久链接Ajax Issue Wordpress
- 15. 在php程序中由wordpress生成的错误永久链接
- 16. 如何更改单个帖子永久链接的默认结构生成?
- 17. 生成表单永久链接
- 18. WordPress的永久链接问题 - 额外的“index.php”在漂亮的永久链接
- 19. nginx的WordPress的漂亮永久链接
- 20. WordPress的奇怪的永久链接
- 21. 我如何重定向所有WordPress的帖子到自定义永久链接
- 22. 自定义帖子类型和自定义分类的WordPress永久链接
- 23. 如何获得所有网址参数WordPress的帖子永久链接?
- 24. WordPress:需要更改RSS源中的帖子永久链接网址
- 25. 如何获得WordPress多站点共享帖子的永久链接
- 26. 的WordPress 3.4.2帖子,档案和分类定制永久链接仅
- 27. WordPress的永久链接产品
- 28. WordPress的永久链接和重定向
- 29. WordPress的永久链接postname 404 on localhost
- 30. WordPress的永久链接,以允许在
感谢您的信息:) –